Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   actualizar datos (https://www.clubdelphi.com/foros/showthread.php?t=79560)

ttotto 16-07-2012 22:32:27

actualizar datos
 
Buenas tardes :

estoy haciendo una actualizacion a mi base de datos

tengo el siguiente codigo

Código Delphi [-]

begin
 
   SQLQuery1.Close;
   SQLQuery1.SQL.Add('update posiciones set pos02='+'contador'+' where pos01=:1');
   SQLQuery1.ExecSQL;

end;



este ejemplo le estoy poniendo fijos los valores

pero me manda el siguiente error

dbexpress driver does not support the tdbxtype unknown datatype

alguien me puede ayudar

Casimiro Noteví 16-07-2012 23:12:40

Primero, usa Text, porque de esa manera estás añadiendo la sentencia en cada pasada por esa parte del código, ya que no lo limpias.

Y ¿qué es contador?, si es una variable numérica entonces está mal, debe ser así:

Código Delphi [-]
SQLQuery1.Close; 
SQLQuery1.SQL.Text := 'update posiciones set pos02='+ IntToStr(contador)+' where pos01=:1'; 
//  AQUÏ FALTA DARLE VALOR AL PARÁMETRO :1   (que no sé si funcionará, procura que empiece por una letra, ejemplo  :A1 ) 
QLQuery1.ExecSQL;

Todo esto es exactamente lo mismo que hemos estado hablando, aconsejando y explicando en tu otro hilo, mira los ejemplos,
hay miles de ejemplos en la web.
Y lee este libro, aprenderás todo lo que necesitas y mucho más.

ttotto 16-07-2012 23:23:03

actualizar datos
 
Gracias casimiro.

contador es el valor que va a tomar la variable pos02

y si efectivamente ya empese a leer el libro y tambien ya busque toda la mañana en internet

y no hay mucho para update , disculpa que no sepa mucho pero con ustedes e avanzado

lo que en meses no habia podido

ahora ya mi codigo lo modifique asi
Código Delphi [-]
begin
  
   SQLQuery1.Close;
   SQLQuery1.SQL.Add('update posiciones set pos02='+'contador'+' where pos01=:1');
   SQLQuery1.ParamByName('pos01').value:=1;
   SQLQuery1.ParamByName('pos02').value:='contador';
   SQLQuery1.ParamByName('pos03').value:=100;
   SQLQuery1.ExecSQL;

end;

y ahora es el siguiente error

sqlquery:parameter 'pos01' not found

Casimiro Noteví 17-07-2012 00:11:34

¿Que no hay mucho sobre update en la web?, una búsqueda de 'update sql' en google solamente devuelve 253 millones de resultados :)
Creo que del libro has leido poco ;)
Y de los ejemplos que te pusimos con los parámetros... menos todavía :confused:

Tu código:
Código Delphi [-]
SQLQuery1.SQL.Add('update posiciones set pos02='+'contador'+' where pos01=:1');

Debes cambiar el .Add por .Text :=
O dejarlo con el .Add pero antes debes incluir la línea:
Código Delphi [-]
SQLQuery.SQl.Clear;

Si vas a usar parámetros entonces cámbialo con los parámetros:
Código Delphi [-]
SQLQuery1.SQl.Text := 'update posiciones set campo1= :elparametro1, campo2= :elparametro2  where campo3= :elparametro3';

En tu código usas 3 parámetros, sin embargo sólo hay uno en la sentencia update, el :1 y que
además te dije que no sirve, que debe empezar por letra, no vale que empiece por número.

Todo esto son cosas repetidas varias veces por varios compañeros, ¡¡¡ Mira los ejemplos de código !!!.

ttotto 17-07-2012 23:00:38

actualizar datos
 
hola casimiro:
te agradesco tu paciencia

cambie mi codigo como entendi en tu explcacion quedando asi
Código Delphi [-]
   SQLQuery1.SQL.Add('update posiciones set pos02=:pos2 ,pos03=:pos3   where pos01=:pos');
   SQLQuery1.ParamByName('pos').value:=1;
   SQLQuery1.ParamByName('pos2').value:=Edit2.Text;
   SQLQuery1.ParamByName('pos3').value:=Edit3.Text;
   SQLQuery1.ExecSQL;

y me manda el siguiente error

dbexpress driver does not support the dbxtypes uin8 datatype

se que algo no entiendo , me puedes ayudar , gracias de antemano

ttotto 17-07-2012 23:07:57

actualizar datos
 
Buenas tardes casimiro

cambie el ultimo parametro , es decir el primero

y ya pude por fin actualizar mis datos quedando de este modo

Código Delphi [-]
   SQLQuery1.Close;
   SQLQuery1.SQL.Clear;
   SQLQuery1.SQL.Add('update posiciones set pos02=:pos2 ,pos03=:pos3   where pos01=:pos');
   SQLQuery1.ParamByName('pos').value:=Edit1.text;;
   SQLQuery1.ParamByName('pos2').value:=Edit2.Text;
   SQLQuery1.ParamByName('pos3').value:=Edit3.Text;
   SQLQuery1.ExecSQL;


estoy agradecido con esta pagina que a la vez la conforma todos los usuarios
y con todos estoy agradecido, por que la ayuda es desinteresada


La franja horaria es GMT +2. Ahora son las 15:40:37.

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