Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Prism Datenbank mit .NET (https://www.delphipraxis.net/56909-datenbank-mit-net.html)

michael.cohrs 13. Nov 2005 11:08

Datenbank: Interbase • Zugriff über: SQL

Datenbank mit .NET
 
Guten Morgenzusammen,

kann mir jemand sagen wie ich an die mit dem unten stehen Quelltext abgerufenen Daten komme? Ich möchte die Ergebnisse der Abfrage zum vergleichen in entsprechende Variablen schreiben. Der Connect über BdpDataConnection klappt einwandfrei nur weiß ich beim besten Willen nicht wie ich an die Ergebnisse der Abfrage komme. Das ganze soll auf einem Webform laufen, soll halt eine ASP :Net Anwendung werden. Ich weiß einfach nicht mehr weiter und würde mich echt über einen Tipp oder Codesnippsel freuen.

Danke

Michael

Delphi-Quellcode:
BdpDataAdapter1.Active       := FALSE;
Command_Text                 := 'SELECT * from CUSTOMER';
BdpCommand1.CommandText      := Command_Text;
BdpDataAdapter1.SelectCommand := BdpCommand1;
BdpDataAdapter1.Fill(Dataset1);
BdpDataAdapter1.Active       := TRUE;
[edit=sakura] [delphi]-Tags Mfg, sakura[/edit]

r_kerber 13. Nov 2005 11:27

Re: Datenbank mit .NET
 
Schau Dir doch einfach mal diesen Artikel im BDN an: Borland ® Data Provider (BDP) for the Microsoft® .NET Framework

michael.cohrs 13. Nov 2005 11:35

Re: Datenbank mit .NET
 
Danke ersteinmal für deine Antwort,

leider komme ich mit diesem Artikel nicht weiter, habe schon alles versucht jedoch bekomme ich keine Ergebnisse (oder finde diese irgendwie nicht in den Komponenten). In den älteren Versionen von Delphi gab es "FieldByName" mit denen ich gezielt Daten abfragen konnte, dass vermisse ich bei dem .NET

Kannst du mir irgend einen Tipp geben wie ich vorgehen muß oder mir gar nen kleinen Code schicken?

Viele Grüße

Michael

Jens Schumann 13. Nov 2005 11:48

Re: Datenbank mit .NET
 
HAllo Michael,
versuche es doch mal in dieser Reihenfolge
Code:
BdpDataAdapter1.Active       := FALSE;
Command_Text                 := 'SELECT * from CUSTOMER';
BdpCommand1.CommandText      := Command_Text;
BdpDataAdapter1.SelectCommand := BdpCommand1;
BdpDataAdapter1.Active       := TRUE;
BdpDataAdapter1.Fill(Dataset1);
Das Ergebnis steht dann in Dataset1

r_kerber 13. Nov 2005 11:52

Re: Datenbank mit .NET
 
Das ist zwar kein Beispiel für BDP sondern für "normalen" ADO.Net-Adapter, sollte aber so ähnlich auch funktionieren:
Delphi-Quellcode:
      s := dsUmrechnungen1.Tables['einheiten'].Rows.
        Item[0]['umrechnung'].ToString;

michael.cohrs 13. Nov 2005 11:59

Re: Datenbank mit .NET
 
Hallo zussammen,

Vielen Dank für eure Antworten, nun klappt es so wie ich wollte. Einen schönen Sonntag euch allen noch


Gruß

Michael

Robert_G 13. Nov 2005 12:04

Re: Datenbank mit .NET
 
Delphi-Quellcode:
var
  connection : IDbConnection;
  command   : IDbCommand;
  dataReader : IDataReader;
  someInt   : Integer;
begin
  connection := DeineConnection;
 
  command := connection.CreateCommand();
  try
    command.CommandText := 'SELECT * from CUSTOMER';
    dataReader := command.ExecuteReader();
    try
      while dataReader.Read() do
      begin
        someInt := dataReader.GetInt32(0);
      end;
    finally
      dataReader.Dispose();
    end;
  finally
    command.Dispose();
  end;
end;
Das ist so ziemlich der standardschnipsel, den man auf alle DBs anwenden kann.
Die Connection, die du oben reinwirfst, entscheidet welches DBMS benutzt wird...
Man sieht auch sehr schön, wie umständlich alles ohne ein "using"-Statement wird...


Zitat:

In den älteren Versionen von Delphi gab es "FieldByName" mit denen ich gezielt Daten abfragen konnte, dass vermisse ich bei dem .NET
Das ist "as designed".
Auch ein FieldbyName war kein schlauer Schritt in native Delphi. Auf die Felder wurde nicht über eine HashTable zugegriffen sondern mega-lahm einzelne Stringvergleiche. Es ist dann schnell fraglich was langsamer war, das Scrolling durch die Ergebnismenge oder das Finden der Spalte... :P

Es gibt auch im .Net IDataReader noch den VB-Monk-Weg:
Delphi-Quellcode:
dataReader['Spalte']
Aber der spuckt ein Object aus, was wieder eine schöne Bremse ist, wenn man es mit value types zu tun hat. (Auch wenn er eine HashTable für die Spalten nimmt ;) )


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:01 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz