Ver Mensaje Individual
  #5 (permalink)  
Antiguo 09/06/2010, 12:02
djkire
 
Fecha de Ingreso: agosto-2009
Mensajes: 96
Antigüedad: 17 años, 2 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";
$sp= mssql_init("PAdd_CLientes");
/*Aqui es donde pongo las variables para poder probarlo*/
mssql_bind($sp, "@msg", $nombre, SQLCHAR, false, false, 30);
mssql_bind($sp, "@Codigo", $Codigo, SQLCHAR); 
mssql_bind($sp, "@Nombre", $Nombre, SQLVARCHAR); 
mssql_bind($sp, "@Nombre_Comercial", $Nombre_Comercial, SQLVARCHAR);
mssql_bind($sp, "@Direccion", $Direccion, SQLVARCHAR);
mssql_bind($sp, "@Poblacion", $Poblacion, SQLVARCHAR);
mssql_bind($sp, "@Codigo_postal", $Codigo_postal, SQLVARCHAR);
mssql_bind($sp, "@Provincia", $Provincia, SQLVARCHAR);
mssql_bind($sp, "@Pais", $Pais, SQLVARCHAR);
mssql_bind($sp, "@Nif", $Nif, SQLVARCHAR);
mssql_bind($sp, "@Telefono", $Telefono, SQLVARCHAR);
mssql_bind($sp, "@Fax", $nombre, SQLVARCHAR);
mssql_bind($sp, "@Subcuenta", $nombre, SQLVARCHAR);
mssql_bind($sp, "@Email", $Email, SQLVARCHAR);
mssql_bind($sp, "@Web", $nombre, SQLVARCHAR);
mssql_bind($sp, "@FPago", $nombre, SQLINT1);
mssql_bind($sp, "@Dia_Fijo1", $nombre, SQLINT1);
mssql_bind($sp, "@Dia_Fijo2", $nombre, SQLINT1);
mssql_bind($sp, "@Dia_Fijo3", $nombre, SQLINT1);
mssql_bind($sp, "@Tarifa", $nombre, SQLINT1);
mssql_bind($sp, "@Dto_Especial", $nombre, SQLVARCHAR);
mssql_bind($sp, "@Dto_PP", $nombre, SQLVARCHAR);
mssql_bind($sp, "@Dto_Articulos", $nombre, SQLVARCHAR);
mssql_bind($sp, "@Riesgo_Maximo", $nombre, SQLVARCHAR);
mssql_bind($sp, "@Copias_Fac", $nombre, SQLVARCHAR);
mssql_bind($sp, "@Fecha_Ini_vac", $nombre, SQLFLT8);
mssql_bind($sp, "@Fecha_Fin_vac", $nombre, SQLFLT8);
mssql_bind($sp, "@Cod_Grupo_Clientes", $nombre, SQLVARCHAR);
mssql_bind($sp, "@CodTransportista", $nombre, SQLVARCHAR);
mssql_bind($sp, "@Comercial", $nombre, SQLVARCHAR);
mssql_bind($sp, "@Comision", $nombre, SQLVARCHAR);
mssql_bind($sp, "@Notas", $nombre, SQLVARCHAR);
mssql_bind($sp, "@Bloqueado", $nombre, SQLVARCHAR);
mssql_bind($sp, "@Excento_IVA", $nombre, SQLVARCHAR);
mssql_bind($sp, "@Recargo", $nombre, SQLVARCHAR);
mssql_bind($sp, "@Subcuenta_Retencion", $nombre, SQLVARCHAR);
mssql_bind($sp, "@Cuenta_Remesas", $nombre, SQLVARCHAR);
mssql_bind($sp, "@Alerta", $nombre, SQLVARCHAR);
mssql_bind($sp, "@Aviso_Albaranes_Pendientes", $nombre, SQLVARCHAR);
mssql_bind($sp, "@Tipo_IVA", $nombre, SQLVARCHAR);
mssql_bind($sp, "@Serie", $nombre, SQLVARCHAR);
mssql_bind($sp, "@Notas_Presupuestos", $nombre, SQLVARCHAR);
mssql_bind($sp, "@Notas_Pedidos", $nombre, SQLVARCHAR);
mssql_bind($sp, "@Notas_Albaranes", $nombre, SQLVARCHAR);
mssql_bind($sp, "@Notas_Facturas", $nombre, SQLVARCHAR);
mssql_bind($sp, "@Notas_Abonos", $nombre, SQLVARCHAR);
mssql_bind($sp, "@Periodicidad", $nombre, SQLVARCHAR);
mssql_bind($sp, "@Dto_Mano_obra", $nombre, SQLVARCHAR);
mssql_bind($sp, "@Usuario", $nombre, SQLVARCHAR);
mssql_bind($sp, "@Llamada", $nombre, SQLVARCHAR);
mssql_bind($sp, "@Dias_Ampliacion", $nombre, SQLVARCHAR);
mssql_bind($sp, "@Cod_Provincia", $nombre, SQLVARCHAR);
mssql_bind($sp, "@Cod_Pais", $nombre, SQLVARCHAR);
mssql_bind($sp, "@Clave_NIF_Pais_Residencia", $nombre, SQLVARCHAR);
$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!!