Ho un problema di controllo di quanto ritornato da delle query in un'applicazione Delphi 6.
Utilizzo un componente "TQuery" che si interfaccia via ODBC a un database Access 2000; il driver è quello Microsoft di MDAC 2.7. Il componente viene allocato a runtime e lo utilizzo per query su tavole diverse; di volta in volta mi limito a modificare la proprietà "SQL" del componente assegnandovi la query necessaria.
Il problema ce l'ho quando cerco di capire quanti record ritorna la query, infatti in certi casi la proprietà "RecordCount" mi ritorna il numero corretto, mentre in altri casi mi ritorna -1, anche se effettivamente scorrendo il "cursore" mediante un ciclo "while not Query.Eof do" ritorna delle righe.
Per esempio, quanto segue funziona:
Query.SQL.Clear;
Query.SQL.Add ('select * from TNAZ_H');
Query.SQL.Add (' where cd_nazi = ''' + Nazione + '''');
Query.Open;
ProgressBar.Max := Query.RecordCount; // -- ritorna 1
while not Query.Eof do
begin
...
end;
Questo invece non funziona:
Query.SQL.Clear;
Query.SQL.Add ('select * from TCLI_H');
Query.SQL.Add (' where cd_clia = ''' + Cliente + '''';
Query.Open;
ProgressBar.Max := Query.RecordCount; // -- ritorna -1
while not Query.Eof do
begin
...
end;
Entrambe le query ritornano un solo record.
Qualcuno può aiutarmi?
Grazie.
Sammi.
mailto: