Questo e' il mio codice che metto ovviamente a disposizione di tutti, devo ringraziare vivamente Alka per le dritte che mi ha dato.
Se puo' essere utile a qualcuno, io ho prelevato da una banca dati del testo che era su più record di uno stesso prodotto di un database, e l'ho riscritto su una stringgrid dalla quale poi sara' facilmente scrivibile su di un file di Excel.
Ancora grazie a tutti
codice:
procedure TForm2.Button7Click(Sender: TObject);
var
codice,testo,cod_atcgmp,cod_ditta,desc_prodotto,info_prof:string ;
num_agg,num_riga,testo_prima:string;
filler1:string;
intesa:boolean;
verifica:integer;
riga_int,giacenza:integer;
riga, col,row:integer;
begin
query1.Close;
query1.SQL.Text := 'select * from MAGAZZINO where ' +
'(codice starting with ''9'') and (web = ''si'')and (giac_totale>''500'')';
query1.Open ;
while not query1.eof do
begin
codice := query1.FieldByName('codice').AsString;
giacenza := query1.FieldByName('giac_totale').AsInteger;
query2.Close;
query2.SQL.Text := 'select * from anagrafica where codice=:codice';
query2.ParamByName('codice').AsString := codice;
query2.Open;
cod_ditta := query2.FieldByName('codice_ditta').AsString;
desc_prodotto := trim(query2.FieldByName('des').AsString);
query2.Close;
//controllo se presente il testo
query2.SQL.Text := 'select num_agg,filler1 from banca_dati where codice = :codice';
query2.ParamByName('codice').AsString := codice;
query2.Open;
num_agg:=query2.FieldByName('num_agg').Asstring;
filler1 := trim(query2.FieldByName('filler1').AsString);
if (query2.IsEmpty = false) then
begin
intesa:=true;
query2.Close;
query2.SQL.Text := 'select * from banca_dati where codice=:codice';
query2.ParamByName('codice').AsString := codice;
query2.Open;
num_riga:=trim(query2.FieldByName('num_riga').Asstring);
try
riga_int := StrToInt(num_riga);
except
on EConvertError do showmessage('Errore');
end;
testo:=query2.FieldByName('testo').AsString;
testo:= '';
verifica :=0;
while not query2.eof do
begin
testo_prima:=testo;
testo := testo + trim(query2.fieldbyname('testo').Asstring) + chr(13) + chr(10);
verifica := verifica +1;
riga:=query2.FieldByName('num_riga').AsInteger;
if riga <> verifica then
begin
info_prof := testo_prima;
verifica :=1;
end;
query2.Next;
end;
If (Memo1.Text <> '') Then Memo1.Clear;
stringgrid1.Cells[1,(stringgrid1.RowCount - 1)]:= km10;
stringgrid1.Cells[(2),(stringgrid1.RowCount - 1)]:= info_prof;
StringGrid1.RowCount:=StringGrid1.RowCount+1;
memo1.lines.add(info_prof);
end;
query1.next;
end;
end;