Ver Mensaje Individual
  #7  
Antiguo 30-08-2010
Dens Dens is offline
Miembro
 
Registrado: ago 2010
Posts: 20
Reputación: 0
Dens Va por buen camino
upss casimiro disculpa mi lentitud es que cuando naci me le resbale de las manos al doctor y sin querer me piso.XD

Bueno el asunto es el siguiente tengo la tabla seriales_productos con los campos:
correlativo_principal (key),
correlativo(que relaciona esta tabla con la tabla compras_detalle)
producto_codigo,
producto_nombre,
serial,
estado(si esta activo o no activo).



Tratare de ser hechar el cuento bien: Una empresa lleva sus procedimientos administrativos en un sistema A (propietario) que se distribuye en venezuela. Este sistema utiliza firebird 2.0 como base de datos.
Yo estoy realizando una aplicacion B que genere seriales para los productos por compra realizada, es decir, el departamento de compras registra una "compra" en el sistema A, el sistema B consulta la tabla compras, selecciona la compra realizada consulta los registros de la tabla compra_detalle de esa compra, y a cada producto se le debe de generar tantos seriales como cantidad de productos que se esten comprando, ejem: si son 6 camizetas , hay que generar 6 seriales.
Ya yo he realizado el form de la tabla compras, el de la tabla compra_detalle y he estado tratando de hacer un dbgrid para insertarle los seriales a la tabla seriales_productos.

Cree un form con un Dbgrid y a su vez un dataset y datasource conectados a ibatransaction y al ibdatabase. En el dataset hago el select a seriales_productos pasandole como parametro el correlativo de la compra asi

Código SQL [-]

select CORRELATIVO_PRINCIPAL, CORRELATIVO, PRODUCTO_CODIGO,  PRODUCTO_NOMBRE, SERIAL, ESTADO from SERIALES_PRODUCTOS where  correlativo=:correlativo

esto lo coloque en ibdataset click derecho-> edit sql
y en el load del form le doy valor al parametro

IBDataSet1.Close;
ibdataset1.ParamByName('correlativo').Value:="93838" "por decir un valor"
IBDataSet1.Open;

hasta aqui funciona perfectamente
Luego ingreso en cliclk derecho ibdataset-> dataset editor
en select primary key selecciono la clave primaria y hago click en generate sql.

y genera esto en insert

insert into SERIALES_PRODUCTOS
(CORRELATIVO, PRODUCTO_CODIGO, PRODUCTO_NOMBRE, SERIAL, ESTADO)
values
(:CORRELATIVO, :PRODUCTO_CODIGO, :PRODUCTO_NOMBRE, :SERIAL,
:ESTADO)

El problema es el siguiente : Yo no quiero darle valores a
:correlativo,roducto_codigo,roducto_nombre,:serial,:estado
Mediante el dbgrid me gustaria darselos asi

IBDataSet1.Close;
ibdataset1.ParamByName('correlativo').Value:="93838" "por decir un valor"
ibdataset1.ParamByName('Producto_codigo').Value:="93838" "por decir un valor"
IBDataSet1.Open; etc....

Pero ahi es cuando me da el error

EIBClientError with message "Field" 'correlativo' not fund. process stopped.

Es decir para La consulta select en sql editor no meda ese error ahi si puedo definir tantos parametros quiera pero para el insert el update y el delete de dataset editor no me reconoce ni un parametro

De verdad espero haber podido explicarme bien , disculpen lo largo de mi explicacion gracias
Responder Con Cita