Linux Mint mate 19x64 - Zeoslib - sqliteBuongiorno,
Voglio copiare alcuni record in base ad una stringa da una tabella in un'altra.Aggiungo un database al database in usoZQuery2.Active:=False;
ZQuery2.SQL.Text:= 'ATTACH '+''''+Label149.Caption+''''+' AS '+'''DB2''';
ZQuery2.Active:=True;
Faccio un ciclo while per creare una stringa che mi servirà per il filtromTable:='totarticoli';
Ztable2.Active:=False;
Ztable2.TableName:='lotti';
mcosa:='';
Ztable2.Active:=True;
Ztable2.First;
while not Ztable2.Eof do
begin
mcosa:= mcosa+Ztable2Num.Text;
Ztable2.Next;
end;
A questo punto dovrei dare l'istruzione sql per copiarmi tutti i record dalla seconda tabella nella prima in base al campo riparto di una lettera che deve essere presente nella stringa mcosa.
DMPcopia.ZQuery2.Active:=False;
ZQuery2.SQL.Text:= 'INSERT INTO '+mtable+' SELECT * FROM DB2.'+mtable+' WHERE riparto='+mcosa+';';
DMPcopia.ZQuery2.Active:=True;
Dovrei utilizzare un'istruzione tipo pos()>0 . Nel codice inserito non funziona neanche ' WHERE riparto='+mcosa e non capisco perchè, mi da l'errore : SQL Error: SQL logic error: no such column: AB1C.Ho bisogno d'aiuto. Grazie.
un pezzo di codice di esempio:
function TmainForm.insertRecordIntoDb(tri: TRecimport): Boolean;
var
qry : TZQuery;
begin
Result := false;
try
try
qry := TZQuery.Create(nil);
qry.Connection := conn;
qry.SQL.Add('insert into import_clienti_fornitori (cod, nome, paese, indirizzo, cap, loc, prov, telefono, tel_port, fax, partita_iva) '+
' values (:cod, :nome, :paese, :indirizzo, :cap, :loc, :prov, :telefono, :tel_port, :fax, :partita_iva)');
qry.ParamByName('cod').AsString:=tri.cod;
qry.ParamByName('nome').AsString:=tri.nome;
qry.ParamByName('paese').AsString:=tri.paese;
qry.ParamByName('indirizzo').AsString:=tri.indirizzo;
qry.ParamByName('cap').AsString:=tri.cap;
qry.ParamByName('loc').AsString:=tri.loc;
qry.ParamByName('prov').AsString:=tri.prov;
qry.ParamByName('telefono').AsString:=tri.tel;
qry.ParamByName('tel_port').AsString:=tri.cell;
qry.ParamByName('fax').AsString:=tri.fax;
qry.ParamByName('partita_iva').AsString:=tri.pi;
qry.ExecSQL;
Result := True;
except
on e: exception do
begin
ShowMessage('Error...'+e.Message);
end;
end;
finally
qry.Free;
end;
end;