Delphi - SQL desde texto

 
Vista:

SQL desde texto

Publicado por Marcos (192 intervenciones) el 26/04/2004 11:45:22
Hola amigos del foro, tengo un archivo update.txt; que tiene lo siguiente:
insert into alumno values(1,"pepe","perez");
insert into alumno values(2,"pepe","perez");
insert into alumno values(3,"pepe","perez");
insert into alumno values(4,"pepe","perez");
............
..............

Y lo que necesito es que la tabla alumnos se actualize a través de código.
Hago la coneccion con la Bd, elimino todos los registros q existen y la duda q tengo es de como leer fila por fila del archi txt para q vaya insertando los nuevos valores.

De antemano muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:SQL desde texto

Publicado por Ing Francisco Arena (140 intervenciones) el 27/04/2004 01:35:22
var
MiConsulta: TQuery;
begin
MiConsulta:= TQuery.Create;
MiConsulta.SQL.Clear;
MiConsulta.SQL.LoadFromFile('update.txt');
MiConsulta.SQL.RunSQL;
// *********** LISTO **************//
...
End;

En vez de crear un TQuery por código, lo puedes agregar en tiempo de diseño y usarlo despues (sin crearlo). Es lo mismo.

Espero te sirva.. Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:SQL desde texto

Publicado por nadie (43 intervenciones) el 27/04/2004 09:32:42
Al menos en Delphi 5 y anteriores no existe el método RunSQL en la clase TQuery.

Tampoco he probado si se pueden ejecutar varias consultas añadidas a la propiedada SQL.

Una alternativa que seguro funciona es la siguiente (de modo simplificado):

var
vConsultas: TStringList;
i: integer;
begin
vConsultas := TStringList.Create;
//Cargamos todos los inserts en un StringList
vConsultas.LoadFromFile('update.txt');

try
for i:=0 to vConsultas.Count - 1 do begin

//Vamos pasando cada insert al TQuery.
MiConsulta.SQL.Text := vConsultas.Strings[i];
MiConsulta.ExecSQL;

end;//for i

finally

vConsultas.Free;

end;//try... finally

end;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:SQL desde texto

Publicado por Marcos (192 intervenciones) el 27/04/2004 10:55:28
Hola muchas gracias por la ayuda, lo solucioné cargando el fichero en un Memo y leyendo e insertando las filas en un ciclo.

Muchas gracias por su tiempo amigos.

Marcos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:SQL desde texto

Publicado por Ing Francisco Arena (140 intervenciones) el 27/04/2004 16:13:14
Tal vez te lo complique mucho, pero con Query basta simplemente que hagas lo sig:

Query1.SQL.Clear;
Query1.SQL.LoadFromFile('update.txt');
...

Lo que haces de cargar línea por linea no es óptimo.

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Tenés razón

Publicado por Ing Francisco Arena (140 intervenciones) el 27/04/2004 16:07:06
Me equivoqué:

El método del componente es ExecSQL.

Estoy programando en Visual Basic para Access y se me trapasó el método.

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

SQL desde texto (coreccion)

Publicado por Ing Francisco Arena (140 intervenciones) el 27/04/2004 16:04:40
Me olvidaba:

...
MiConsulta:= TQuery.Create(nil);
MiCOnsulta.DatabaseName:= 'DBDEMOS';
...

y no te olvides de "liberar" el objeto con:

MiConsulta.Free;

ó

FreeAndNil(MiConsulta);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar