Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-11-2003
gendelphi gendelphi is offline
Miembro
 
Registrado: jul 2003
Ubicación: Tlaxcala Mexico
Posts: 73
Poder: 21
gendelphi Va por buen camino
IBDataSet no asigna valores a las variables de campo

Hola a todos, nuevamente yo.

Anteriormente pedi ayuda sobre el mal funcionamiento de un IBDataSet con base de datos con sql dialect 3, he notado que el problema esta en que el IBDataSet no almacena correctamente el valor de las variables de cada campo, por ejemplo:
la propiedad SelectSQL del IBDataSet esta asi:

SELECT campo1, campo2 FROM tabla

lo que significa que existiran dos variables o parametros llamados :campo1 y :campo2, que contienen los valores introducidos desde algun componente de la paleta DataControls, como un DBGrid, o un DBEdit, es decir, que si la propiedad ModifySQL del IBDataSet, esta configurada asi:

UPDATE tabla SET campo1 = :campo1, campo2 = :campo2
WHERE campo1 =:OLD_campo1

despues de hacer un Post al IBDataset, deberia de enviarse al servidor la sentencia SQL que asigna a campo1, el valor de :campo1, y a campo2 el valor de :campo2, es decir, asignar los valores que se tecleen en el DBGrid o DBEdit. Pero no lo hace asi.

Si la base de datos es Dialecto 3, y el componente IBDatabase se configura como Dialecto 1, todo funciona BIEN. Pero si el componente IBDatabase se configura como dialecto 3 los parametros :campo1 y :campo2, no toman los valores que se hayan dado en el DBGrid o DBEdit, sino que :campo1 vale cero, y :campo2 vale 17/11/1858, dado que campo1 es INTEGER y campo2 es DATE.

Podria alguien orientarme, en que estoy haciendo mal?
o acaso IBDataset no funciona con bases de datos Dialecto 3?

Nuevamente: Uso Delphi 5, con los componentes para interbase que ya trae, mi BD esta creada con FireBird 1.02 y en Dialecto 3.
Responder Con Cita
  #2  
Antiguo 26-01-2006
Fita Fita is offline
Miembro
 
Registrado: jul 2003
Ubicación: Pilar - Argentina
Posts: 216
Poder: 21
Fita Va por buen camino
Hola...

No entiendo mucho lo que te sucede... yo utilizo IBDataset con dialecto 3 y funciona perfecto. Creo que tu problema esta en la sentencia del update.

Yo lo haría asi:

Tabla1.SelectSql.Clear;
Tabla1.SelectSql.Add('update tabla1 set campo1 = :campo1, campo2 = campo2¡);
Tabla1.SelectSql.add('where campo1 = ld_campo1');
Tabla1.ParamByName('campo1').asstring := dbEdit1.text;
Tabla1.ParamByName('campo2').asCurrency := dbEdit2.field.AsCurrency;
Tabla1.ExcecSql;

Lo de ld_campo1 nunca lo he utilizado de esta manera.

Espero te sirva
Saludos
Responder Con Cita
  #3  
Antiguo 31-01-2006
cuburu cuburu is offline
Miembro
 
Registrado: mar 2005
Posts: 63
Poder: 20
cuburu Va por buen camino
Hola.

Quizas podría ser que tu versión de Base de Datos no soporte el dialecto tipo 3 debido a que ésta es ya una forma más reciente de manejo de SQL. Trata de probar con una Base de Datos más reciente.... me perece haber leido hace rato que el firebird 1.5 ya trae soporte para dialect 3.
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


La franja horaria es GMT +2. Ahora son las 17:28:58.


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