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



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 16:10:14.


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