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 19-02-2004
acrophet acrophet is offline
Miembro
 
Registrado: sep 2003
Posts: 175
Poder: 21
acrophet Va por buen camino
duda tonta con gdb

Hola, lo que planteo es una duda tonta, pero me esta tocando las narices.
A ver, si con algo del formato "dato:=IBtablaDATO.AsString;" tendriamos guardado el valor del campo DATO en la variable dato. Si hacemos la operacion inversa, es decir, "IBtablaDATO.AsString:=dato", no tendriamos guardado en la tabla el valor de la variable dato????? Es que no logro meterle a piñon fijo unos datos que me interesan de este modo, simplemente no me guarda nada, ni error ni nada de nada.
Si no es asi(que parece ser que no lo es), alguien me podria indicar como se hace para guardar en un campo de la tabla el valor de una variable???

Un saludo.
Responder Con Cita
  #2  
Antiguo 19-02-2004
Avatar de haron
haron haron is offline
Miembro
 
Registrado: may 2003
Ubicación: Las Palmas de Gran Canaria
Posts: 310
Poder: 22
haron Va por buen camino
has hecho esto?

IBTabla.edit;
IBTablaDATO.AsString:=dato;
IBTabla.post;
__________________
“Plantad la semilla de la avaricia en la infértil tierra de la estupidez y obtendreis la bella flor de la mierda”
(Confucio)
Responder Con Cita
  #3  
Antiguo 19-02-2004
acrophet acrophet is offline
Miembro
 
Registrado: sep 2003
Posts: 175
Poder: 21
acrophet Va por buen camino
Pues como es logico si que lo he hecho, por eso es que ya estoy mosqueado...
Responder Con Cita
  #4  
Antiguo 19-02-2004
Gydba Gydba is offline
Miembro
 
Registrado: ene 2004
Ubicación: Argentina
Posts: 673
Poder: 21
Gydba Va por buen camino
Deberías ver de hacer un commit de la transacción y también chequear el isolationlevel de la misma.
Creo que por ahí viene el tema si es que comprendí bien y luego de hacer un post no ves nada en consultas posteriores.
__________________
Suerte
.: Gydba :.
Responder Con Cita
  #5  
Antiguo 19-02-2004
acrophet acrophet is offline
Miembro
 
Registrado: sep 2003
Posts: 175
Poder: 21
acrophet Va por buen camino
No es que no vea nada en consultas, sino que directamente no me guarda el dato en la tabla...!!!!!
Responder Con Cita
  #6  
Antiguo 19-02-2004
Gydba Gydba is offline
Miembro
 
Registrado: ene 2004
Ubicación: Argentina
Posts: 673
Poder: 21
Gydba Va por buen camino
¿Pero te tira algún error? ¿haces el commit? ¿Cómo definiste la transacción?
__________________
Suerte
.: Gydba :.
Responder Con Cita
  #7  
Antiguo 19-02-2004
acrophet acrophet is offline
Miembro
 
Registrado: sep 2003
Posts: 175
Poder: 21
acrophet Va por buen camino
Vale, ya he encontrado donde falla. Le paso el valor de la variable como comentamos antes, jugando con el step over voy mirando los valores de todo y en el momento en que hace el post, me cambia el valor por 0.
Esto es debido a que tengo un form con una serie de dbedits que se han de rellenar y yo lo que quiero es que cuando se deje uno en concreto en blanco, de forma automatica se meta el valor que yo quiero; pero claro al hacer el post como el dbedit esta en blanco, me guarda el valor 0.
Como puedo hacer esto bien???
Responder Con Cita
  #8  
Antiguo 19-02-2004
Gydba Gydba is offline
Miembro
 
Registrado: ene 2004
Ubicación: Argentina
Posts: 673
Poder: 21
Gydba Va por buen camino
Si estás usando Firebird lo mas completo sería utilizar un trigger para verificar el ingreso. Para ver de que manera recurrí al histórico que podés encontrar info.

De ultima podría generarte alguna especie de IF que te condicione el campo a ingresar al momento de la asignación del valor al campo de la BD.
__________________
Suerte
.: Gydba :.
Responder Con Cita
  #9  
Antiguo 19-02-2004
acrophet acrophet is offline
Miembro
 
Registrado: sep 2003
Posts: 175
Poder: 21
acrophet Va por buen camino
La verdad es que no te he entendido lo que me quieres decir. Lo unico que te puedo decir es que el valor que quiero me lo coge bien hasta el momento de postear que me mete de valor 0 (ya que realmente en el dbedit no hay nada).
Aclaremos un poco:

IBTablaDATO.AsString:=dato; -----> aqui tengo el dato en la tabla
IBTabla.post; ------->aqui ya no lo tengo, me ha guardado 0 ó null, no se
Si alguien puede echar un poco de luz sobre este asunto estaria agradecido.
Responder Con Cita
  #10  
Antiguo 19-02-2004
Gydba Gydba is offline
Miembro
 
Registrado: ene 2004
Ubicación: Argentina
Posts: 673
Poder: 21
Gydba Va por buen camino
Me parece que no estás formulando bien la pregunta o no te comprendo del todo lo que realmente te pasa.

Si tenés correctamente los obj. de conexión enlazados y hacés:
Código:
IBTable.FieldByName['TuCampo'].AsString := 'Prueba';
IBTable.post;
Y luego hacés un commit de la transacción sin que te devuelva ningún error me parece un poco imposible que el registro no se ingrese en tu BD.
__________________
Suerte
.: Gydba :.
Responder Con Cita
  #11  
Antiguo 19-02-2004
acrophet acrophet is offline
Miembro
 
Registrado: sep 2003
Posts: 175
Poder: 21
acrophet Va por buen camino
A ver, hago el commit y lo pongo tal como dices. Pero el problema no esta aqui. El problema esta en el dbedit, que logicamente esta conectado con la tabla. Yo le paso el dato a la tabla a mano, correcto, pero en el momento en que hago el post, pues supongo que lo que realmente postea es lo que hay dentro del dbedit, y al no haber nada pues no graba nada y me machaca lo que yo habia introducido a mano. Por eso ni me da error ni nada.
No se si me explico...
Responder Con Cita
  #12  
Antiguo 19-02-2004
Gydba Gydba is offline
Miembro
 
Registrado: ene 2004
Ubicación: Argentina
Posts: 673
Poder: 21
Gydba Va por buen camino
No sabía que tenías un dbedit enlazado. Si es así entonces no deberías asignar el valor al campo de la BD, puesto que el propio dataset asignado al control debería obtenerlo automáticamente al hacer el post.

Lo que ocurre al hacer el post es que cambia el dataset asignado a tu dbedit y por ende su valor relacionado.

Creo que eso es lo que pasa o por lo menos así lo estoy pensando, no te puedo comprobar nada porque no tengo Delphi a mano
__________________
Suerte
.: Gydba :.
Responder Con Cita
  #13  
Antiguo 19-02-2004
acrophet acrophet is offline
Miembro
 
Registrado: sep 2003
Posts: 175
Poder: 21
acrophet Va por buen camino
Igual es que no me he explicado correctamente en todo lo que hago y me pasa.
Claro que no deberia asignar el valor a mano, ya que el dataset lo asignara automaticamente. Pero el quid de la cuestion es que cuando este dbedit se deje en blanco por el usuario, quiero que se meta un valor concreto. AHI es donde me falla el asunto.
Por cierto, gracias por perder el tiempo conmigo
Responder Con Cita
  #14  
Antiguo 19-02-2004
Gydba Gydba is offline
Miembro
 
Registrado: ene 2004
Ubicación: Argentina
Posts: 673
Poder: 21
Gydba Va por buen camino
No es una perdida de tiempo en lo absoluto.

Podés evaluar la posibilidad de que, como mencioné anteriormente, un trigger se encargue de verificar los valores antes de ingresar el valor en la tabla.
Date una vuelta por el histórico que hay info al respecto.

Otra manera sería validar tu dbedit en un evento anterior al post del dataset.
__________________
Suerte
.: Gydba :.
Responder Con Cita
  #15  
Antiguo 19-02-2004
Jan Jan is offline
Miembro
 
Registrado: may 2003
Ubicación: Cádiz
Posts: 90
Poder: 22
Jan Va por buen camino
Hola.

Puedes asignarle el valor al dbedit en vez de al campo:

dbedit1.Text:=dato;

De esta forma debería funcionarte.
__________________
Guía de Estilo del Foro
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 08:37:30.


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