Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Prism Merkwürdiges SELECT-Verhalten des Firebird .Net DataProvider (https://www.delphipraxis.net/59763-merkwuerdiges-select-verhalten-des-firebird-net-dataprovider.html)

r_kerber 28. Dez 2005 12:40

Datenbank: Firebird • Version: 1.5 • Zugriff über: ADO.Net

Merkwürdiges SELECT-Verhalten des Firebird .Net DataProvider
 
Moin moin,

ich greife mit dem Firebird .Net Data Provider auf meine FB-DB zu.
Delphi-Quellcode:
  daSpiele.SelectCommand.CommandText := 'SELECT termin, ort, m1, m2, t1, t2 ' +
    'FROM spiele WHERE ART = ?';
  daSpiele.SelectCommand.Parameters.Add('@gruppe', FbDbType.VarChar, 5).Value
    := 'A';
  daSpiele.Fill(dsSpiele, 'spiele');
Wenn ich obenstehenden Quelltext verwende, erhalte ich eine Fehlermeldung:
Zitat:

Einschränkungen konnten nicht aktiviert werden. Mindestens eine Zeile enthält Werte die die Einschränkungen non-null, unique or foreign-key verletzen.
Beschreibung: Beim Ausführen der aktuellen Webanforderung ist ein unverarbeiteter Fehler aufgetreten. Überprüfen Sie die Stapelüberwachung, um weitere Informationen über diesen Fehler anzuzeigen und festzustellen, wo der Fehler im Code verursacht wurde.

Ausnahmedetails: System.Data.ConstraintException: Einschränkungen konnten nicht aktiviert werden. Mindestens eine Zeile enthält Werte die die Einschränkungen non-null, unique or foreign-key verletzen.
Steht jedoch folgendes im Quelltext, da läuft das DB-Zugriff korrekt:
Delphi-Quellcode:
  daSpiele.SelectCommand.CommandText := 'SELECT * ' +
    'FROM spiele WHERE ART = ?';
  daSpiele.SelectCommand.Parameters.Add('@gruppe', FbDbType.VarChar, 5).Value
    := 'A';
  daSpiele.Fill(dsSpiele, 'spiele');
Hat jemand dafür eine Erklärung?

r_kerber 29. Dez 2005 18:01

Re: Merkwürdiges SELECT-Verhalten des Firebird .Net DataProv
 
Kann sich das wirklich niemand erklären?
Nachtrag:
Zitat:

Zitat von r_kerber
Delphi-Quellcode:
  daSpiele.SelectCommand.CommandText := 'SELECT termin, ort, m1, m2, t1, t2 ' +
    'FROM spiele WHERE ART = ?';
  daSpiele.SelectCommand.Parameters.Add('@gruppe', FbDbType.VarChar, 5).Value
    := 'A';
  daSpiele.Fill(dsSpiele, 'spiele');

Dieses hier genutzte SQL-Select funktioniert unter IBExpert ohne Probleme.

MagicAndre1981 29. Dez 2005 21:02

Re: Merkwürdiges SELECT-Verhalten des Firebird .Net DataProv
 
Welche Version des ADO.NET Providers nutzt du?

Zeig mal bitte die Definition deiner Tabelle.

André

r_kerber 30. Dez 2005 04:41

Re: Merkwürdiges SELECT-Verhalten des Firebird .Net DataProv
 
Zitat:

Zitat von MagicAndre1981
Welche Version des ADO.NET Providers nutzt du?

1.7
Zitat:

Zitat von MagicAndre1981
Zeig mal bitte die Definition deiner Tabelle.

Hier mal kurz die komplette DDL aus IBExpert kopiert:
SQL-Code:
/******************************************************************************/
/****              Generated by IBExpert 30.12.2005 05:40:15               ****/
/******************************************************************************/

SET SQL DIALECT 3;

SET NAMES WIN1252;



/******************************************************************************/
/****                                Tables                               ****/
/******************************************************************************/


CREATE GENERATOR GEN_SPIELE_ID;

CREATE TABLE SPIELE (
    LFD_SPIEL INTEGER NOT NULL,
    TERMIN    TIMESTAMP NOT NULL,
    ORT       INTEGER DEFAULT 0 NOT NULL,
    ART       VARCHAR(5) NOT NULL,
    M1         INTEGER NOT NULL,
    M2         INTEGER NOT NULL,
    T1         INTEGER,
    T2         INTEGER
);




/******************************************************************************/
/****                             Primary Keys                            ****/
/******************************************************************************/

ALTER TABLE SPIELE ADD CONSTRAINT PK_SPIELE PRIMARY KEY (LFD_SPIEL);


/******************************************************************************/
/****                             Foreign Keys                            ****/
/******************************************************************************/

ALTER TABLE SPIELE ADD CONSTRAINT FK_SPIELE_1 FOREIGN KEY (M1) REFERENCES MANNSCHAFTEN (LFD_MANNSCHAFT) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE SPIELE ADD CONSTRAINT FK_SPIELE_2 FOREIGN KEY (M2) REFERENCES MANNSCHAFTEN (LFD_MANNSCHAFT) ON DELETE CASCADE ON UPDATE CASCADE;
ALTER TABLE SPIELE ADD CONSTRAINT FK_SPIELE_3 FOREIGN KEY (ORT) REFERENCES ORTE (LFD_ORTE) ON DELETE SET DEFAULT ON UPDATE SET DEFAULT;


/******************************************************************************/
/****                               Indices                               ****/
/******************************************************************************/

CREATE INDEX SPIELE_IDX1 ON SPIELE (ART);


/******************************************************************************/
/****                               Triggers                              ****/
/******************************************************************************/


SET TERM ^ ;


/******************************************************************************/
/****                         Triggers for tables                         ****/
/******************************************************************************/



/* Trigger: SPIELE_BI */
CREATE TRIGGER SPIELE_BI FOR SPIELE
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
  IF (NEW.LFD_SPIEL IS NULL) THEN
    NEW.LFD_SPIEL = GEN_ID(GEN_SPIELE_ID,1);
END
^


SET TERM ; ^



/******************************************************************************/
/****                              Privileges                             ****/
/******************************************************************************/

Elvis 30. Dez 2005 11:48

Re: Merkwürdiges SELECT-Verhalten des Firebird .Net DataProv
 
Sieht aus als hättest u zuviel Zeit mit ODBC oder sogar BDP verschwendet. ;)
Beim FbProvider sieht das leider so @-verseucht wie beim Sql Server aus:
SQL-Code:
WHERE ART = @gruppe
Aber immerhin benannte Parameter.

btw: Der FbProvider hat eine Doku, die dir das nach 2 Minuten statt 2 Tagen gesagt hätte...

r_kerber 30. Dez 2005 12:12

Re: Merkwürdiges SELECT-Verhalten des Firebird .Net DataProv
 
Zitat:

Zitat von Elvis
Sieht aus als hättest u zuviel Zeit mit ODBC oder sogar BDP verschwendet. ;)

Nein eigentlich nicht, ich dachte aber es gehört ein : vor den Parameternamen, was ja im IBExpert auch funktioniert. Deshalb habe ich ja unbenannten Parameter verwendet.
Das war aber nicht meine Frage... Es geht um diesen Teil des SQL-Statements:
Zitat:

Zitat von r_kerber
Delphi-Quellcode:
  daSpiele.SelectCommand.CommandText := 'SELECT termin, ort, m1, m2, t1, t2 ' +

Zitat:

Zitat von Elvis
btw: Der FbProvider hat eine Doku, die dir das nach 2 Minuten statt 2 Tagen gesagt hätte...

Wie Du siehst, ist meine Frage auch nach zwei Tagen noch nicht gelöst. :-(

Elvis 30. Dez 2005 12:45

Re: Merkwürdiges SELECT-Verhalten des Firebird .Net DataProv
 
Zitat:

Zitat von r_kerber
Das war aber nicht meine Frage... Es geht um diesen Teil des SQL-Statements

Ok, habe mal den ersten Beitrag gelesen...:duck:

Und wenn due die Daten mal normal ausliest? Alsomit einem IDataReader und einem Container eines Value/Reference types?
Du könntest ja mal das XSD des DataSets zeigen und die Daten, die deine Abfrage liefert. Rumraten mag ich dann nicht wirklich.;)

Nicht dass ich irgendjemandem diese DataSet-Viecher empfehlen will, aber falls du schon viel Code drumrumgebaut hast...

MagicAndre1981 30. Dez 2005 16:26

Re: Merkwürdiges SELECT-Verhalten des Firebird .Net DataProv
 
Code:
daSpiele.SelectCommand.CommandText = "SELECT termin, ort, m1, m2, t1, t2 FROM SPIELE WHERE ART=@gruppe";
daSpiele.SelectCommand.Parameters.Add("@gruppe",FbDbType.VarChar,5).Value = 'A';
daSpiele.Fill(dsSpiele, "spiele");
dataGrid1.DataSource = dsSpiele;
dataGrid1.DataMember = "spiele";
Also bei mir gehts, aber du hast die Refenzierenden Tabellen nicht aufgelistet, vllt haste da einen Bug drin :?

r_kerber 31. Dez 2005 06:54

Re: Merkwürdiges SELECT-Verhalten des Firebird .Net DataProv
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Elvis
Du könntest ja mal das XSD des DataSets zeigen und die Daten

Jetzt wo Du es sagst, fällt mir auf, daß gar kein xsd erzeugt wurde. :gruebel:
Zitat:

Zitat von MagicAndre1981
Also bei mir gehts, aber du hast die Refenzierenden Tabellen nicht aufgelistet, vllt haste da einen Bug drin :?

Die Tabellendefinitionen und die Daten für die Tabelle spiele sind im Anhang.
Zitat:

Zitat von Elvis
Und wenn due die Daten mal normal ausliest? Alsomit einem IDataReader und einem Container eines Value/Reference types?

Ich will diese ja direkt in einem Web-DataGrid anzeigen.

MagicAndre1981 31. Dez 2005 19:10

Re: Merkwürdiges SELECT-Verhalten des Firebird .Net DataProv
 
Also bei mir gehts. Ich habe die DB angelegt und die Daten befüllt. Das SELECT funzzt.

r_kerber 1. Jan 2006 09:03

Re: Merkwürdiges SELECT-Verhalten des Firebird .Net DataProv
 
Zitat:

Zitat von MagicAndre1981
Das SELECT funzzt.

Mit BDS 2006? Wie gesagt, im IBExpert geht's auch!

MagicAndre1981 1. Jan 2006 14:27

Re: Merkwürdiges SELECT-Verhalten des Firebird .Net DataProv
 
Zitat:

Zitat von r_kerber
Zitat:

Zitat von MagicAndre1981
Das SELECT funzzt.

Mit BDS 2006?

Nöö, mit dem VS2003 + ADO.NET Provider 1.7. Delphi 2005 Pers. hab ich nicht mehr installiert.

r_kerber 1. Jan 2006 15:02

Re: Merkwürdiges SELECT-Verhalten des Firebird .Net DataProv
 
Zitat:

Zitat von MagicAndre1981
Nöö, mit dem VS2003 + ADO.NET Provider 1.7.

Und hat Dein VS2003 eine xsd-Datei erzeugt?

MagicAndre1981 1. Jan 2006 15:24

Re: Merkwürdiges SELECT-Verhalten des Firebird .Net DataProv
 
Zitat:

Zitat von r_kerber
Und hat Dein VS2003 eine xsd-Datei erzeugt?

Nein, weil ich kein typisiertes DataSet erstellt hab. Die visuellen Komponenten nehme ich nicht ;-) Aber wie gesagt, das SELECT geht.

Elvis 1. Jan 2006 18:35

Re: Merkwürdiges SELECT-Verhalten des Firebird .Net DataProv
 
Um ein XSD aus einer FireBird DB zu bekommen, kann der Schnipsel hier benutzt werden.
Kann mit dem kostenlosen Command line compiler von chrome kompilert, oder in C#, D.Net,... übersetzt werden.
War nur als Beispielgedacht, wie bereits erwähnt: Ich würde keinem DataSets empfehlen...

r_kerber 1. Jan 2006 19:55

Re: Merkwürdiges SELECT-Verhalten des Firebird .Net DataProv
 
Zitat:

Zitat von Elvis
Um ein XSD aus einer FireBird DB zu bekommen, kann der Schnipsel hier benutzt werden.

Zitat:

Search Error

Session timed out, please resubmit your search
Zitat:

Zitat von Elvis
Kann mit dem kostenlosen Command line compiler von chrome kompilert, oder in C#, D.Net,... übersetzt werden.

Warum sollte ich Chrome einsetzen? Wenn der FB .Net Data Provider dies nicht von Haus aus macht, hat er sich IMHO für mich für den praktischen Einsatz disqualifiziert.
Zitat:

Zitat von Elvis
War nur als Beispielgedacht, wie bereits erwähnt: Ich würde keinem DataSets empfehlen...

Ist hier zwar OT: Soll ich dann das Web DataGrid per Hand füllen?
Ich fände es nett, wenn Du stattdessen auf die gestellte Frage eingehen würdest.

Elvis 1. Jan 2006 20:48

Re: Merkwürdiges SELECT-Verhalten des Firebird .Net DataProv
 
Zitat:

Search Error
Session timed out, please resubmit your search
Sorry, ich dachte die articleId wäre eine fixe referenz :oops:
Ich habe unten den ganzen Artikel nochmal im DP-style zitiert. ;)

Zitat:

Warum sollte ich Chrome einsetzen?
Es ist einfach nur eine Klasse, die aus einer FB Datenbank ein XSDim Stile der original mitgelieferten .Net Provider generiert.
Und ich sagte nicht du _musst_ Chrome nehmen, es würde dir nur die Umwandlung zu C#/Delphi ersparen. ;)
Zitat:

Wenn der FB .Net Data Provider dies nicht von Haus aus macht, hat er sich IMHO für mich für den praktischen Einsatz disqualifiziert.
Weder FB Provider noch BDP können typisierte DataSets anlegen, deshalb gibt es da wohl keinen Grund den FBProvider abzuwerten.
Außerdem ging das eigentlich an André, bei dem ich mir denken kann, dass es ihn interessieren könnte. ;)

Zitat:

Zitat:

Zitat von Elvis
War nur als Beispielgedacht, wie bereits erwähnt: Ich würde keinem DataSets empfehlen...

Ist hier zwar OT: Soll ich dann das Web DataGrid per Hand füllen?
Ich fände es nett, wenn Du stattdessen auf die gestellte Frage eingehen würdest.
Versuch' ich's mal...
Zitat:

Jetzt wo Du es sagst, fällt mir auf, daß gar kein xsd erzeugt wurde. :gruebel:
Einfach mal ein DataSet.WriteSchema an der bösen Stelle um zu sehen mit was für Constraints dein DataSet arbeitet. Zusammen mit den Daten könnte man den bösen Wert herausfinden. :)
Es muss ja etwas im Schema stehen, da du sonst diese Meldung nicht bekommen würdest.
Zitat:

Zitat:

Zitat von Elvis
Und wenn due die Daten mal normal ausliest? Alsomit einem IDataReader und einem Container eines Value/Reference types?

Ich will diese ja direkt in einem Web-DataGrid anzeigen.
Hat auch keiner von dir verlangt. ;)
Der kleinste gemeinsame Nenner für DataBinding an ein ListControl ist IEnumerable.
Ein Container von Instanzen eines value/reference types könnte genauso als DataSource benutzt werden wie ein IDataReader oder ein ... DataSet.

Möglich wäre als hack-around dies:
Delphi-Quellcode:
using command := DeineConnection.CreateCommand() do
begin
  command.CommandText := 'SELECT termin, ort, m1, m2, t1, t2 FROM SPIELE WHERE ART = @Gruppe';
  var parameter := command.CreateParameter();
  command.Parameters.Add(parameter);
  parameter.DbType := DbType.AnsiString;
  parameter.ParameterName := '@Gruppe';
  parameter.Value := 'A';
 
  using reader := command.ExecuteReader() do
  begin
    DeinGrid.DataSource := reader;
    DeinGrid.DataBind();
  end;
end;
Das sollte dir die Daten direkt anzeigen. Aber interessanter wäre das Schema deines DataSets, wie du es erzeugt hast und vor allem: Testdaten, die den Fehler verursachen.

Hier nochmal der Artikel hinter dem nicht funktionierenden Link...
Zitat:

Zitat:

Would anyone mind providing me with a small example of creating a dataset in code using the Firebird provider?
Hi Lee,
Problem is, that the FbProvider has this dump BDP style non-typed-DataSet
approach... :-/
I'm not a fan of DataSets, but here is some hacked-together (thus no
warranty ;-) ) code to open a Firebird database using embedded server, and
build an XSD schema from it. (Needs FbProvider and FbEmbed.dll)

The generated schema can be added to a chrome project -> ét violá.
If you have that XSD in your project: Don't forget to set the custom tool
to "MSDataSetGenerator" and build action to "None". ;)

Hope, I could help...

Actual code:
Delphi-Quellcode:
uses
  System.Data,
  System.Data.Common,
  System.IO,
  System.Collections.Specialized,
  FirebirdSql.Data.Firebird;

type
  FirebirdXsdBuilder = public class(IDisposable)
  private
    fDatabaseFile: String;
    fDataSet: DataSet;
  protected
    method GetTableNames(connection : IDbConnection) : StringCollection;
    method BuildConnectionString : String;
    property DataSet : DataSet read fDataSet;
  public
    property DatabaseFile : String read fDatabaseFile;
    method BuildSchema;
    method Dispose;
    method WriteSchema();
    method WriteSchema(stream : Stream);
    method WriteSchema(fileName : String);
    constructor(databaseFile: String; buildSchema : Boolean := true);
 end;
 
implementation

method FirebirdXsdBuilder.GetTableNames(connection : IDbConnection) :
StringCollection;
begin
  using command := connection.CreateCommand() do
  begin
    // System tables ain't that interesting, are they? ;-)
    command.CommandText :=
      'SELECT Rdb$Relation_Name ' +
      'FROM RDB$RELATIONS ' +
      'WHERE Rdb$System_Flag = 0';
   
    result := new StringCollection();

    using reader := command.ExecuteReader() do
      while reader.Read() do
        result.Add(reader.GetString(0).Trim());
  end;
end;

method FirebirdXsdBuilder.BuildSchema;
begin
  using connection := new FbConnection(BuildConnectionString()) do
  using command := connection.CreateCommand() do
  begin
    connection.Open();
   
    var TableNames := GetTableNames(connection);
   
    if TableNames.Count > 0 then
    begin
      DataSet.Tables.Clear();

      using dataAdapter := new FbDataAdapter(command) do
      begin
        // FbProvider won't map tablenames correcty,
        // so we have to provide 'em ourself
        var tableMapping := new DataTableMapping('Table', String.Empty);

        dataAdapter.TableMappings.Add(tableMapping);

        for TableName : String in TableNames do
        begin
          // bogus select...
          command.CommandText := String.Format('SELECT * FROM {0} WHERE 1 = 2',
                                               TableName);
          // FbDataAdapter considers SourceTable always to be 'Table',
          // setting DataSetTable will change it's name in the schema
          tableMapping.DataSetTable := TableName;

          dataAdapter.MissingSchemaAction := MissingSchemaAction.AddWithKey;

          dataAdapter.Fill(DataSet);
        end;
      end;
    end;
  end;
end;

method FirebirdXsdBuilder.BuildConnectionString : String;
begin
  var connectionBuilder := new FbConnectionStringBuilder();

  // see FbProvider docs: 1 = embedded
  connectionBuilder.ServerType := 1;
  connectionBuilder.Database := DatabaseFile;

  exit(connectionBuilder.ToString());
end;

constructor FirebirdXsdBuilder(databaseFile: String; buildSchema : Boolean);
begin
  fDatabaseFile := databaseFile;
  fDataSet := new DataSet(Path.GetFileNameWithoutExtension(fDatabaseFile));
 
  if buildSchema then
    self.BuildSchema();
end;

method FirebirdXsdBuilder.WriteSchema;
begin
  DataSet.WriteXmlSchema(string.Format('{0}.xsd', DataSet.DataSetName));
end;

method FirebirdXsdBuilder.WriteSchema(stream : Stream);
begin
  DataSet.WriteXmlSchema(stream);
end;

method FirebirdXsdBuilder.WriteSchema(fileName : String);
begin
  DataSet.WriteXmlSchema(fileName);
end;

method FirebirdXsdBuilder.Dispose;
begin
  if assigned(DataSet) then
    DataSet.Dispose();
end;

It could be used like this:

Delphi-Quellcode:
class method ConsoleApp.Main(args : array of String);
begin
  if args.Length > 0 then
    using XsdBuilder := new FirebirdXsdBuilder(args[0], true) do
      XsdBuilder.WriteSchema();
end;


r_kerber 2. Jan 2006 19:41

Re: Merkwürdiges SELECT-Verhalten des Firebird .Net DataProv
 
Zitat:

Zitat von Elvis
Ein Container von Instanzen eines value/reference types könnte genauso als DataSource benutzt werden wie ein IDataReader oder ein ... DataSet.

Möglich wäre als hack-around dies:
Delphi-Quellcode:
using command := DeineConnection.CreateCommand() do
begin
  command.CommandText := 'SELECT termin, ort, m1, m2, t1, t2 FROM SPIELE WHERE ART = @Gruppe';
  var parameter := command.CreateParameter();
  command.Parameters.Add(parameter);
  parameter.DbType := DbType.AnsiString;
  parameter.ParameterName := '@Gruppe';
  parameter.Value := 'A';
 
  using reader := command.ExecuteReader() do
  begin
    DeinGrid.DataSource := reader;
    DeinGrid.DataBind();
  end;
end;
Das sollte dir die Daten direkt anzeigen.

Werd's mal ausprobieren.
BTW: Bist Du C#-geschädigt?
Delphi-Quellcode:
  var parameter := command.CreateParameter();

Elvis 2. Jan 2006 19:48

Re: Merkwürdiges SELECT-Verhalten des Firebird .Net DataProv
 
Zitat:

Zitat von r_kerber
BTW: Bist Du C#-geschädigt?
Delphi-Quellcode:
  var parameter := command.CreateParameter();

C# wird das frühestens ab 3.0 können. ;) Das ist type inference in Chrome (wie beim using). :)

Falls du die Klammern meinst: jain, finde ich hübscher so.

r_kerber 2. Jan 2006 20:07

Re: Merkwürdiges SELECT-Verhalten des Firebird .Net DataProv
 
Moin Elvis,

Zitat:

Zitat von Elvis
Das ist type inference in Chrome (wie beim using). :)

Eine Bitte: Ich habe eine Frage zu Delphi gestellt, ich möchte deshalb keine Antwort, die nur mit Chrome läuft. Das führt nur zu Verwirrungen. Ich würde mich freuen, wenn Du oder ein anderer user sich sachdienlich zu der genannten Kombination BDS2006 - FB .Net Data Provider äußern würden. Ich bin auch gern bereit, die (noch) kleine FBDB für einen Test bereitzustellen.

Elvis 2. Jan 2006 20:15

Re: Merkwürdiges SELECT-Verhalten des Firebird .Net DataProv
 
falls du die anhängen könntest, hätten wir das ganz schnell geklärt. :)


btw: Sorry für meinen Hang zu teilweise extremen OT, news groups sind da verzeilicher als nicht-hierarchische phpBB Threads. ;)

r_kerber 2. Jan 2006 20:19

Re: Merkwürdiges SELECT-Verhalten des Firebird .Net DataProv
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Elvis
falls du die anhängen könntest, hätten wir das ganz schnell geklärt.

Siehe Anhang.

MagicAndre1981 2. Jan 2006 21:07

Re: Merkwürdiges SELECT-Verhalten des Firebird .Net DataProv
 
Zitat:

Zitat von r_kerber
Ich würde mich freuen, wenn Du oder ein anderer user sich sachdienlich zu der genannten Kombination BDS2006 - FB .Net Data Provider äußern würden.

Also mit BDS2006 kann ich nicht dienen :wink:

Mit dem VS2003 FB.NET 1.7 /VS2005 FB.NET 2.0 BETA gehts. Sorry, aber ich hab keinen Plan, warum es bei dir nicht geht. http://www.planet3dnow.de/vbulletin/...s/noahnung.gif :?

Elvis 4. Jan 2006 01:40

Re: Merkwürdiges SELECT-Verhalten des Firebird .Net DataProv
 
Sorry, Rainer, dass ich nicht früher zurückfand.
Muss meinem Cousin gerade etwas Prögramören zeigen, das reduziert die Lust auf PCs im Allgemeinen. :zwinker:
Dein Problem kann ich unter 2.0 zwar nicht nachvollziehen, aber der aktuelle "stable" build des FbProviders scheint gehörigt vermurkst zu sein. ;)
Er endet selbst mit dem simplen ExecuteScalar in einem DeadLock... :?
Code:
FbConnectionStringBuilder connectionBuilder = new FbConnectionStringBuilder();
connectionBuilder.ServerType = FbServerType.Embedded;
connectionBuilder.Database = "FUSSBALL.FDB";

using (IDbConnection connection = new FbConnection(connectionBuilder.ToString()))
using (IDbCommand command = connection.CreateCommand())
{

    command.CommandText = "SELECT count(*) FROM SPIELE WHERE ART=@gruppe";

    IDataParameter parameter = command.CreateParameter();
    command.Parameters.Add(parameter);
    parameter.ParameterName = "@gruppe";
    parameter.DbType = DbType.AnsiString;
    parameter.Value = "A";

    connection.Open();
    int recordCount = (int)command.ExecuteScalar();
}
Vllt hast du ja Glück und irgend eine pre alpha-beta irgendwas läuft wieder/immernoch vernünftig...

MagicAndre1981 4. Jan 2006 12:51

Re: Merkwürdiges SELECT-Verhalten des Firebird .Net DataProv
 
Also Robert, bei mir geht alles, egal ob unter .NET 2.0 oder .NET 1.1 :gruebel:


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:39 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