Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-07-2012
ttotto ttotto is offline
Miembro
NULL
 
Registrado: jul 2012
Posts: 30
Poder: 0
ttotto Va por buen camino
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
Responder Con Cita
  #2  
Antiguo 16-07-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
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.
Responder Con Cita
  #3  
Antiguo 16-07-2012
ttotto ttotto is offline
Miembro
NULL
 
Registrado: jul 2012
Posts: 30
Poder: 0
ttotto Va por buen camino
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

sqlqueryarameter 'pos01' not found
Responder Con Cita
  #4  
Antiguo 17-07-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿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

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 !!!.
Responder Con Cita
  #5  
Antiguo 17-07-2012
ttotto ttotto is offline
Miembro
NULL
 
Registrado: jul 2012
Posts: 30
Poder: 0
ttotto Va por buen camino
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=os2 ,pos03=os3   where pos01=os');
   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
Responder Con Cita
  #6  
Antiguo 17-07-2012
ttotto ttotto is offline
Miembro
NULL
 
Registrado: jul 2012
Posts: 30
Poder: 0
ttotto Va por buen camino
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=os2 ,pos03=os3   where pos01=os');
   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
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
Actualizar estructura de base de datos sin perder datos ManuelPerez Firebird e Interbase 8 20-10-2010 02:41:19
Actualizar Datos?? Bare C++ Builder 5 24-02-2010 05:34:32
actualizar datos de una tabla según datos de otra. GustavoCruz SQL 10 01-06-2007 23:18:44
Actualizar datos de una base de datos en un reporte Marymania Impresión 4 27-11-2006 19:47:32
Actualizar Datos trex2000 Firebird e Interbase 1 26-09-2003 23:21:49


La franja horaria es GMT +2. Ahora son las 20:23:55.


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