Einzelnen Beitrag anzeigen

Robert_G
(Gast)

n/a Beiträge
 
#6

Re: ADO (MS-SQL) + clUseServer + DBGrid-Anbindung

  Alt 9. Jul 2004, 10:24
@trifid

Ich verwende generell serverseitige unidirektionale Cursor WANN IMMER ES GEHT!
Weißt du auch warum? Es ist so ziemlich die schnellste Art Daten von einem DB-Server abzufragen.
Die Zwischenschicht eines Client cursors klaut dir mindestens die Hälfte des möglichen Datendurchsatzes.

Zitat von trfid:
a) ab .net wird diese Art von Cursor nicht mehr unterstützt
Das ist absolut falsch! Ich benutze auch unter .Net REF Cursor (eine Referenz auf einen Cursor, der auf dem Server geöffnet wurde).

Eine Suche nach "REF CUrsor" in der SDK Doku ergibt (Ranking 3):
Zitat von .Net SDK Doku:
The following C# example assumes that you have created this stored procedure.

SQL-Code:
create or replace package sp_pkg as
      type refCursorxx is ref cursor;
procedure getdata(a1 out refCursorxx, a2 out refCursorxx);
end;
create or replace package body sp_pkg as
       procedure getdata(a1 in number, a2 out refCursorxx) is
       begin
            open a1 for select * from emp;
            open a2 for select * from dept;
            end getdata;
       end;
The following C# example demonstrates how you might obtain table and column information using the stored procedure.
[C#]
Delphi-Quellcode:
OracleConnection conn = new OracleConnection("Data Source=Oracle8i;Integrated Security=yes");
Conn.Open;
OracleCommand cmd = conn.CreateCommand();
cmd.CommandText = "sp_pkg.getdata";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new OracleParameter("a1", OracleType.Cursor)).Direction = ParameterDirection.Output;
cmd.Parameters.Add(new OracleParameter("a2", OracleType.Cursor)).Direction = ParameterDirection.Output;
DataSet ds = new DataSet();
OracleDataAdapter adapter = new OracleDataAdapter(cmd);
adapter.Fill(ds);
  Mit Zitat antworten Zitat