Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-08-2010
Dens Dens is offline
Miembro
 
Registrado: ago 2010
Posts: 20
Poder: 0
Dens Va por buen camino
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
Responder Con Cita
  #2  
Antiguo 29-08-2010
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Trata asi:
Código Delphi [-]
IBDataSet1.Close; 
IBDataSet1.Params[0].Value := '334'; "por decir un valor"
IBDataSet1.Open;
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
Responder Con Cita
  #3  
Antiguo 30-08-2010
Dens Dens is offline
Miembro
 
Registrado: ago 2010
Posts: 20
Poder: 0
Dens Va por buen camino
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.
Responder Con Cita
  #4  
Antiguo 30-08-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.068
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Hola, Dens, bienvenido a clubdelphi, te recomiendo que leas nuestra guía de estilo, así podremos ayudarte mejor, gracias.
Responder Con Cita
  #5  
Antiguo 30-08-2010
Dens Dens is offline
Miembro
 
Registrado: ago 2010
Posts: 20
Poder: 0
Dens Va por buen camino
Ok ya he leido la guia de estilo, supongo que redacte mal el titulo, mil disculpas por las molestias causadas.
Responder Con Cita
  #6  
Antiguo 30-08-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.068
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Dens Ver Mensaje
Ok ya he leido la guia de estilo, supongo que redacte mal el titulo, mil disculpas por las molestias causadas.
No, no es por eso, amigo

Es para que expliques en detalle qué haces para que salga este error que comentas:
Cita:
Empezado por Dens
Hola caral gracias por responder, te cuento que me da el siguiente error
EIBClientError with message xsqlda index out of range .Process stopped .
Tal y como dice la guía de estilo, que expliques lo más detalladamente posible todo el proceso, sistema, base de datos, componentes, tipos, sentencias sql, etc. en fin, todo lo que éstas implican en lo que estás haciendo.
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
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
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


La franja horaria es GMT +2. Ahora son las 00:03:07.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi