Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MySQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=21)
-   -   problema con campo MEMO (https://www.clubdelphi.com/foros/showthread.php?t=56983)

decuteo 02-06-2008 20:30:29

problema con campo MEMO
 
Bueno, el título creo que lo dice todo.

Entorno : Delphi 7 conexión ODBC a MySQL 5

Tengo hecha la conexión ytodo funciona OK hasta que le inserto un campo memo, entonces el código que veis me da un error y lo único que hay nuevo (con respecto a la rutina operativa) es la inserción de la linea que esta en rojo, (en la tabla de MySql el campo es del tipo TEXT).
He estado buscando información pero no he encontrado nada, lo curioso es que el resto de campos se actualizan con los datos, excepto el que os comento.

En el formulario el componente que aloja los datos es del tipo Tmemo. Un detalle curioso es que si en vez de poner;

Código:

Aquery1.Parameters.ParamByName('dato6').Value:=links.Text;

pongo

Aquery1.Parameters.ParamByName('dato6').Value:=links.Lines;

el compilador me da error por incompatibilidad de tipos de variable Variant y String


Esto es lo que tengo puesto

Código:

procedure TForm1.anadirClick(Sender: TObject);
begin
try
screen.Cursor:=crSQLWait;
AQuery1.SQL.Clear;
Aquery1.SQL.Add('INSERT INTO tabla (eh_des,eh_cat,eh_tip,eh_sim,eh_desc,eh_link,eh_post,eh_ubic)'+
                '  VALUES (:dato2,:dato3,:dato4,:dato5,:dato6,:dato7,:dato8,:dato9)');
Aquery1.Parameters.ParamByName('dato2').Value:=fecha.Date;
Aquery1.Parameters.ParamByName('dato3').Value:=descripcion.Text;
Aquery1.Parameters.ParamByName('dato4').Value:=categoria.Items[categoria.ItemIndex];
Aquery1.Parameters.ParamByName('dato5').Value:=simulador.Items[simulador.ItemIndex];
Aquery1.Parameters.ParamByName('dato6').Value:=links.Text;
Aquery1.Parameters.ParamByName('dato7').Value:=Descargado.Checked;
Aquery1.Parameters.ParamByName('dato8').Value:=Post.Text;
Aquery1.Parameters.ParamByName('dato9').Value:=ubicacion.Text;
AQuery1.ConnectionString:=server(1);
Aquery1.Open;
except
  on E: Exception  do
      begin
      Application.MessageBox( 'No hay comunicación con el servidor o no se grabaron los datos correctamente', 'ERROR GRAVE', MB_ICONSTOP );
      desconectar();
      end;
  end;
botones(0,0,1,1,1);
screen.Cursor:=crDefault;
end;

Gracias por vuestra ayuda.

Saludos
Juanjo

decuteo 03-06-2008 13:17:18

ya encontré el problema.

La instrucción

Aquery1.ConnectionString:=....

debe ir inmediatamente después de

Aquery1.SQL.Clear

(?)

No me pregunten porqué, pero así funciona.

Saludos
Juanjo


La franja horaria es GMT +2. Ahora son las 21:10:22.

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