![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Como pasar parametros al insert de un ibdataset
Buenas tardes, soy nuevo en este foro, me gustaria saber si alguien me puede ayudar con el siguiente problemita que tengo.
Estoy creando una aplicacion en delphi con firebird 2.0 y me he trancado al intentar pasarle parametros a el insert del ibdataset me explico: Uso un dbgrid para mostrar crear y modificar seriales de productos que pertenecen a una compra realizada, es decir principalmente el dataset hace un este select select CORRELATIVO, PRODUCTO_CODIGO, PRODUCTO_NOMBRE, SERIAL, ESTADO from SERIALES_PRODUCTOS where documento=:var1 donde :var1 es el parametro que me vinculara la tabla "seriales_productos" con la tabla "compra_detalle", la idea es que si de un producto se compran 5 unidades se registren 5 seriales ni mas ni menos. Disculpen lo largo, solo quiero ser explicito. El problema radica en que al hacer el insert necesito definirle parametros y lo hago de este modo: IBDataSet1.Close; IBDataSet1.Params.ByName('correlativo').Value:='334'; "por decir un valor" IBDataSet1.Open; me da el sigiente error EIBClientError with message "Field" 'correlativo' not fund. process stopped. NO entiendo a que viene ese error si de porsi el dataset genera el insert con parametros. insert into SERIALES_PRODUCTOS (CORRELATIVO, PRODUCTO_CODIGO, PRODUCTO_NOMBRE, SERIAL, ESTADO) values (:CORRELATIVO, :PRODUCTO_CODIGO, :PRODUCTO_NOMBRE, :SERIAL, :ESTADO) Muchas gracias de antemano |
#2
|
||||
|
||||
Hola
Trata asi: Ahora: Al estar el numero 334 entre comillas quiere decir que el dato sera string, si es numerico no coloques las comillas. Saludos
__________________
Siempre Novato |
#3
|
|||
|
|||
Hola caral gracias por responder, te cuento que me da el siguiente error
EIBClientError with message xsqlda index out of range .Process stopped ... Gracias por tu respuesta hermano. |
#4
|
||||
|
||||
Hola, Dens, bienvenido a clubdelphi, te recomiendo que leas nuestra guía de estilo, así podremos ayudarte mejor, gracias.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#5
|
|||
|
|||
Ok ya he leido la guia de estilo, supongo que redacte mal el titulo, mil disculpas por las molestias causadas.
|
#6
|
||||
|
||||
Cita:
![]() Es para que expliques en detalle qué haces para que salga este error que comentas: Cita:
De esa manera será más fácil ayudarte, porque de esa manera sólo podemos "aventurar" a suponer qué puede ser el problema. Por ejemplo, en teoría se supone que ese error es porque estás indicando un índice de parámetro que no existe, que ocurriría cuando tienes un sólo parámetro y sin embargo indicas el índice [3] (por ejemplo). Pues eso, que sólo podemos aventurarnos a suponer, pero si nos explicas mejor en detalle... será más fácil acertar con la solución a tu duda ![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#7
|
|||
|
|||
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
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, ![]() ![]() 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 ![]() |
#8
|
||||
|
||||
Hola
Yo aqui no puedo ayudar mucho por que no uso los IBDataSet, no me gustan, muy probablemente por que no los entiendo. Yo hago las cosas directamente sobre los IBQuery, me es mas cómodo. Saludos
__________________
Siempre Novato |
#9
|
||||
|
||||
Aquí se puede descargar un sencillo documento en pdf, escrito por el amigo Eliseo González (egostar), verás lo sencillo, útil y cómodo que resulta usar los IBDataSet
![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#10
|
|||
|
|||
Hola casimiro, gracias por tu ayuda. BUeno justamente lo que dice ese manual son los conocimientos que tengo respecto al problema, he buscado la manera de darle solucion pero hasta ahora no he encontrado nada.
![]() |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Pasar Componentes como parámetros | Antonioveneroso | C++ Builder | 5 | 26-02-2008 19:48:58 |
Dudas sobre un insert en un ibdataset | IVAND | Firebird e Interbase | 0 | 09-10-2007 15:18:49 |
Cómo pasar los parámetros? | dunia_lv | Impresión | 0 | 15-04-2005 16:26:42 |
Pasar parametros a IBdataSet | digital | Firebird e Interbase | 3 | 13-07-2004 08:39:11 |
como pasar parametros... | hook | SQL | 13 | 11-05-2004 19:24:14 |
![]() |
|