On Mon, 24 Jan 2011, Bo Berglund wrote:

On Mon, 24 Jan 2011 19:15:13 +0100, "Dipl. Phys. Jörg Schläger"
<[email protected]> wrote:


Thanks, this was the simple way I have been looking for!
Now that I did that the patch activated and I could see that it no
longer barfs at the EXEC verb.
Still only returns one record out of 4, though.

is it possible for you to do something like this ?>


ii := 0;
Query1.open;
while not Query1.eof do
begin
iii := ii + 1;
Query1.next;
end;

then check ii.

In Delphi the behavour of Query1.recordcount with ODBC and MSsql is mystic


The actual code I use is this:

     query.Open;
     S := '';
     while not query.EOF do
     begin
       S := S + query.FieldByName('AppNo').AsString + ' - ' +
            query.FieldByName('AppInfo').AsString + #13#10;
       query.Next;
     end;

After the Open call the while loop is entered and the query.Next
statement causes the query.EOF flag to be set so the loop exits.
This is what I interpreted as caused by the Open method interpreting
the return as having only one record.

As an experiment I added a line as follows after the query.Open
statement:
     i := query.RecordCount;

But this only affirms the fact that the recordset handled by the query
only contains a single record, i = 1.

In general RecordCount cannot be trusted; It can be updated as the TDataset fetches records.

In each case: SQLDB relies on ODBC to connect to MS-SQL.

From testing with MS-Access and MySQL I know that ODBC works fine with other
databases, at least for SELECT Statements.

1. Can you test a regular SELECT statement on the same SQL database ?
   If that doesn't work either, we know the problem is in the ODBC connection 
component.

2. Can you test the same EXEC statement in a Delphi app through ODBC ?
   If this gives problems, it means the ODBC driver is well - weird.
   (although this would surprise me)

3. If both previous attempts work, there is nothing left but to debug the ODBC 
connection component.
   That means stepping through your code with the debugger.

Michael.
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to