Ver Mensaje Individual
  #5 (permalink)  
Antiguo 09/06/2010, 12:02
djkire
 
Fecha de Ingreso: agosto-2009
Mensajes: 96
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: Stored procedure desde php

Mira perdona pero esque estoy echo un lio porque esto es totalmente nuevo para mi mira voy a ponerte lo que tengo a ver si puedo verlo mas claro.

Esto de a continuación es el STORED PROCEDURE que tengo en la base de datos SQL SERVER.

Código:
CREATE PROCEDURE PAdd_Clientes


@msg varchar(100) output,
@Codigo int,
@Nombre varchar (100),
@Nombre_Comercial varchar (100),
@Direccion varchar (100),
@Poblacion varchar (100),
@Codigo_postal varchar (25),
@Provincia varchar (100),
@Pais varchar (100) ,
@Nif varchar (25) ,
@Telefono varchar (25),
@Fax varchar (25) ,
@Subcuenta varchar (25),
@Email varchar (100),
@Web varchar (100),
@FPago int,
@Dia_Fijo1 int,
@Dia_Fijo2 int,
@Dia_Fijo3 int,
@Tarifa int,
@Dto_Especial numeric(18,2),
@Dto_PP numeric(18,2),
@Dto_Articulos numeric(18,2),
@Riesgo_Maximo numeric(18,2),
@Copias_Fac int,
@Fecha_Ini_vac datetime,
@Fecha_Fin_vac datetime,
@Cod_Grupo_Clientes int,
@CodTransportista int,
@Comercial int,
@Comision numeric(18,2),
@Notas text,
@Bloqueado bit,
@Excento_IVA bit,
@Recargo bit,
@Subcuenta_Retencion varchar (25),
@Cuenta_Remesas int,
@Alerta varchar(500),
@Aviso_Albaranes_Pendientes bit,
@Tipo_IVA int,
@Serie varchar(10),
@Notas_Presupuestos varchar (100),
@Notas_Pedidos varchar (100),
@Notas_Albaranes varchar (100),
@Notas_Facturas varchar (100),
@Notas_Abonos varchar (100),
@Periodicidad int,
@Dto_Mano_obra numeric(18,2),
@Usuario varchar(10)=null,
@Llamada char(3) 	/** Llamada desde VB o otro sp: @llamada="VB" --> VB / @llamada='SQL' --> TSQL**/,
@Dias_Ampliacion int= null,
@Cod_Provincia int=null,
@Cod_Pais int=null,
@Clave_NIF_Pais_Residencia int=null

Código PHP:
$conecta mssql_connect ("192.168.1.34""sa""");
mssql_select_db("base_de_datos");
$db"base_de_datos";
$spmssql_init("PAdd_CLientes");
/*Aqui es donde pongo las variables para poder probarlo*/
mssql_bind($sp"@msg"$nombreSQLCHARfalsefalse30);
mssql_bind($sp"@Codigo"$CodigoSQLCHAR); 
mssql_bind($sp"@Nombre"$NombreSQLVARCHAR); 
mssql_bind($sp"@Nombre_Comercial"$Nombre_ComercialSQLVARCHAR);
mssql_bind($sp"@Direccion"$DireccionSQLVARCHAR);
mssql_bind($sp"@Poblacion"$PoblacionSQLVARCHAR);
mssql_bind($sp"@Codigo_postal"$Codigo_postalSQLVARCHAR);
mssql_bind($sp"@Provincia"$ProvinciaSQLVARCHAR);
mssql_bind($sp"@Pais"$PaisSQLVARCHAR);
mssql_bind($sp"@Nif"$NifSQLVARCHAR);
mssql_bind($sp"@Telefono"$TelefonoSQLVARCHAR);
mssql_bind($sp"@Fax"$nombreSQLVARCHAR);
mssql_bind($sp"@Subcuenta"$nombreSQLVARCHAR);
mssql_bind($sp"@Email"$EmailSQLVARCHAR);
mssql_bind($sp"@Web"$nombreSQLVARCHAR);
mssql_bind($sp"@FPago"$nombreSQLINT1);
mssql_bind($sp"@Dia_Fijo1"$nombreSQLINT1);
mssql_bind($sp"@Dia_Fijo2"$nombreSQLINT1);
mssql_bind($sp"@Dia_Fijo3"$nombreSQLINT1);
mssql_bind($sp"@Tarifa"$nombreSQLINT1);
mssql_bind($sp"@Dto_Especial"$nombreSQLVARCHAR);
mssql_bind($sp"@Dto_PP"$nombreSQLVARCHAR);
mssql_bind($sp"@Dto_Articulos"$nombreSQLVARCHAR);
mssql_bind($sp"@Riesgo_Maximo"$nombreSQLVARCHAR);
mssql_bind($sp"@Copias_Fac"$nombreSQLVARCHAR);
mssql_bind($sp"@Fecha_Ini_vac"$nombreSQLFLT8);
mssql_bind($sp"@Fecha_Fin_vac"$nombreSQLFLT8);
mssql_bind($sp"@Cod_Grupo_Clientes"$nombreSQLVARCHAR);
mssql_bind($sp"@CodTransportista"$nombreSQLVARCHAR);
mssql_bind($sp"@Comercial"$nombreSQLVARCHAR);
mssql_bind($sp"@Comision"$nombreSQLVARCHAR);
mssql_bind($sp"@Notas"$nombreSQLVARCHAR);
mssql_bind($sp"@Bloqueado"$nombreSQLVARCHAR);
mssql_bind($sp"@Excento_IVA"$nombreSQLVARCHAR);
mssql_bind($sp"@Recargo"$nombreSQLVARCHAR);
mssql_bind($sp"@Subcuenta_Retencion"$nombreSQLVARCHAR);
mssql_bind($sp"@Cuenta_Remesas"$nombreSQLVARCHAR);
mssql_bind($sp"@Alerta"$nombreSQLVARCHAR);
mssql_bind($sp"@Aviso_Albaranes_Pendientes"$nombreSQLVARCHAR);
mssql_bind($sp"@Tipo_IVA"$nombreSQLVARCHAR);
mssql_bind($sp"@Serie"$nombreSQLVARCHAR);
mssql_bind($sp"@Notas_Presupuestos"$nombreSQLVARCHAR);
mssql_bind($sp"@Notas_Pedidos"$nombreSQLVARCHAR);
mssql_bind($sp"@Notas_Albaranes"$nombreSQLVARCHAR);
mssql_bind($sp"@Notas_Facturas"$nombreSQLVARCHAR);
mssql_bind($sp"@Notas_Abonos"$nombreSQLVARCHAR);
mssql_bind($sp"@Periodicidad"$nombreSQLVARCHAR);
mssql_bind($sp"@Dto_Mano_obra"$nombreSQLVARCHAR);
mssql_bind($sp"@Usuario"$nombreSQLVARCHAR);
mssql_bind($sp"@Llamada"$nombreSQLVARCHAR);
mssql_bind($sp"@Dias_Ampliacion"$nombreSQLVARCHAR);
mssql_bind($sp"@Cod_Provincia"$nombreSQLVARCHAR);
mssql_bind($sp"@Cod_Pais"$nombreSQLVARCHAR);
mssql_bind($sp"@Clave_NIF_Pais_Residencia"$nombreSQLVARCHAR);
$data mssql_fetch_row(mssql_execute($sp));


$BD odbc_connect('base_de_datos''sa''');
$count "Select top 1 *  from Clientes order by Codigo desc";
$result=odbc_exec($BD,$count)or die(exit("Error en odbc_exec"));
print 
odbc_result_all($result,"border=1");

if (
$valor odbc_fetch_array($result)){   
do{
$ULTIMO=$valor['Codigo'];
$ULTIMO=$ULTIMO+1;
echo 
$ULTIMO;
} while (
$valor odbc_fetch_array($result));
} else echo (
"");
$sql "INSERT INTO Clientes(Codigo, Nombre , Nombre_Comercial, Telefono, Email, Direccion, NIF, Poblacion, Provincia, Pais)".
       
"VALUES ('$ULTIMO', '$Nombre', '$Nombre_Comercial', '$Telefono', '$Email', '$Direccion', '$Nif', '$Poblacion', '$Provincia', '$Pais')";
$result=odbc_exec($BD,$sql)or die(exit("Error en odbc_exec"));
        if(
$result){
echo (
"<p><img src='cliente_ok.png' width='64' height='64'>El Cliente se a modificado con éxito!!</p>");
}else{
echo (
"<img src='cliente_nok.png' width='64' height='64'>Error modificando datos: </p>");

Entonces no se si esto asi puede funcionar porque me inserta y puedo insertar cosas duplicadas cosa que en el procedimiento no me deja como por ejemplo en NIF.

Gracias!!