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 Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-11-2008
Avatar de alonso.esparza
alonso.esparza alonso.esparza is offline
Miembro
 
Registrado: nov 2008
Posts: 16
Poder: 0
alonso.esparza Va por buen camino
Angry Excepción en codigo SQL, UDATE, Delphi 7

Buenas:

Pues aqui comentandoles haber si me pueden ayudar, soy nuevo en esto del Delphi (estoy manejando el 7), tengo una aplicación de altas y bajas a una BD de Access y hago la conexion y la consulta, todo bien, solo que quiero , despues de haber hecho una consulta y que me muestre los datos en unos EditBox (No en DBEditBox), yo pueda modificar los EditBox y despues de darle click al boton, me actualize y YA todos felices......Este es el codigo SQL:

procedure TForm1.Button1Click(Sender: TObject);

begin
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('UPDATE Tprueba SET campo1 = :' + edit2.Text +', campo2 = ' + edit3.Text + ' WHERE Id = '+ Edit1.Text);
ADOQuery1.Open;
end;

Pero OO mi sorpresa cuando lo ejecuto y le doy click me aparece una ventana de "Debugger Exception Notification" la cual dice " Proyect ..blabla ..class EOleException with message 'Objeto Parameter mal definido. Se proporciono informacion incompleta o incoherente' ....bla blaa

O tambien me salia que "El parametro (Lo que haya tecleado en el edit2) no tiene un valor predeterminado"

Una Ayuda Porfa


Saludos
Sergio Alonso Esparza, Chihuahua,Chihuahua,Mex.
Responder Con Cita
  #2  
Antiguo 02-11-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola alonso.esparza, cuando haces modificacines sobre la BD tienes que utilizar ExecSQL y cuando haces solo consulta Open, ahí esta tu primer error, ahora tu consulta así como esta no necesita los : ya que le estas pasando directamente los parametros.

Debería quedar así:

Código Delphi [-]
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('UPDATE Tprueba SET campo1 = ' +edit2.Text+', campo2 = ' + edit3.Text + ' WHERE Id = '+ Edit1.Text);
ADOQuery1.ExecSQL;

Si tu campo es entero no necesita comillas pero sino si necesitas ponerle comillas, para ello puedes utilizar QuotedStr.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #3  
Antiguo 02-11-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Deberias de indicarnos los tipos de campo, pero bueno, ahí va la primera prueba.
Código Delphi [-]
begin
ADOQuery1.Close;
ADOQuery1.SQL.Text:= 'UPDATE Tprueba SET campo1 = '+edit2.Text+', campo2 = '+edit3.Text+' WHERE Id = '+Edit1.Text);
ADOQuery1.Open;
end;
Saludos
__________________
Siempre Novato
Responder Con Cita
  #4  
Antiguo 02-11-2008
Avatar de alonso.esparza
alonso.esparza alonso.esparza is offline
Miembro
 
Registrado: nov 2008
Posts: 16
Poder: 0
alonso.esparza Va por buen camino
Gracias a los dos ya me funcionó de hecho quedo así:

ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('UPDATE Tprueba SET campo1 = ' + QuotedStr(edit2.Text) +', campo2 = ' + QuotedStr(edit3.Text) + ' WHERE Id = '+ Edit1.Text);
ADOQuery1.ExecSQL;

Jajajaja, ya me iba a dar de topes con la pared jaja, Oigan y abusando de su amabilidad
tengo un DBGrid en la forma, y quiero que en cuanto modifique se muestre el cambio en el DBGrid, jjeeje

GRACIAS Deveras

Saludos
atte
Sergio Alonso Esparza
Responder Con Cita
  #5  
Antiguo 02-11-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por alonso.esparza Ver Mensaje
Oigan y abusando de su amabilidad
tengo un DBGrid en la forma, y quiero que en cuanto modifique se muestre el cambio en el DBGrid,
Al Query que esta enlazado a tu DbGrid le Close y luego un Open.

Código Delphi [-]
 Query.Close;
 Query.Open;

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #6  
Antiguo 02-11-2008
Avatar de alonso.esparza
alonso.esparza alonso.esparza is offline
Miembro
 
Registrado: nov 2008
Posts: 16
Poder: 0
alonso.esparza Va por buen camino
Gracias, ya funciona =)

Saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Capturar una excepcion en Delphi producida por FIREBIRD ronson Firebird e Interbase 21 01-09-2010 21:18:10
Cómo puedo capturar una excepción en delphi? Fenix_Dark OOP 3 29-04-2008 14:17:47
ANN: AnyNET-Delphi: Herramienta para generar codigo fuente Delphi desde :NET mamcx Noticias 7 21-05-2007 02:12:36
ó Código BAT o con Delphi Deiv Varios 8 12-06-2006 00:35:50
de codigo VB a codigo Delphi ingel Impresión 2 20-07-2004 14:15:44


La franja horaria es GMT +2. Ahora son las 19:30:51.


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