![]() |
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:
Wenn ich obenstehenden Quelltext verwende, erhalte ich eine Fehlermeldung:
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'); Zitat:
Delphi-Quellcode:
Hat jemand dafür eine Erklärung?
daSpiele.SelectCommand.CommandText := 'SELECT * ' +
'FROM spiele WHERE ART = ?'; daSpiele.SelectCommand.Parameters.Add('@gruppe', FbDbType.VarChar, 5).Value := 'A'; daSpiele.Fill(dsSpiele, 'spiele'); |
Re: Merkwürdiges SELECT-Verhalten des Firebird .Net DataProv
Kann sich das wirklich niemand erklären?
Nachtrag: Zitat:
|
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é |
Re: Merkwürdiges SELECT-Verhalten des Firebird .Net DataProv
Zitat:
Zitat:
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 ****/ /******************************************************************************/ |
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:
Aber immerhin benannte Parameter.
WHERE ART = @gruppe
btw: Der FbProvider hat eine Doku, die dir das nach 2 Minuten statt 2 Tagen gesagt hätte... |
Re: Merkwürdiges SELECT-Verhalten des Firebird .Net DataProv
Zitat:
Das war aber nicht meine Frage... Es geht um diesen Teil des SQL-Statements: Zitat:
Zitat:
|
Re: Merkwürdiges SELECT-Verhalten des Firebird .Net DataProv
Zitat:
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... |
Re: Merkwürdiges SELECT-Verhalten des Firebird .Net DataProv
Code:
Also bei mir gehts, aber du hast die Refenzierenden Tabellen nicht aufgelistet, vllt haste da einen Bug drin :?
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"; |
Re: Merkwürdiges SELECT-Verhalten des Firebird .Net DataProv
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Zitat:
Zitat:
|
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.
|
Re: Merkwürdiges SELECT-Verhalten des Firebird .Net DataProv
Zitat:
|
Re: Merkwürdiges SELECT-Verhalten des Firebird .Net DataProv
Zitat:
|
Re: Merkwürdiges SELECT-Verhalten des Firebird .Net DataProv
Zitat:
|
Re: Merkwürdiges SELECT-Verhalten des Firebird .Net DataProv
Zitat:
|
Re: Merkwürdiges SELECT-Verhalten des Firebird .Net DataProv
Um ein XSD aus einer FireBird DB zu bekommen, kann der Schnipsel
![]() Kann mit dem kostenlosen ![]() War nur als Beispielgedacht, wie bereits erwähnt: Ich würde keinem DataSets empfehlen... |
Re: Merkwürdiges SELECT-Verhalten des Firebird .Net DataProv
Zitat:
Zitat:
Zitat:
Zitat:
Ich fände es nett, wenn Du stattdessen auf die gestellte Frage eingehen würdest. |
Re: Merkwürdiges SELECT-Verhalten des Firebird .Net DataProv
Zitat:
Ich habe unten den ganzen Artikel nochmal im DP-style zitiert. ;) Zitat:
Und ich sagte nicht du _musst_ Chrome nehmen, es würde dir nur die Umwandlung zu C#/Delphi ersparen. ;) Zitat:
Außerdem ging das eigentlich an André, bei dem ich mir denken kann, dass es ihn interessieren könnte. ;) Zitat:
Zitat:
Es muss ja etwas im Schema stehen, da du sonst diese Meldung nicht bekommen würdest. Zitat:
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:
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.
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; Hier nochmal der Artikel hinter dem nicht funktionierenden Link... Zitat:
|
Re: Merkwürdiges SELECT-Verhalten des Firebird .Net DataProv
Zitat:
BTW: Bist Du C#-geschädigt?
Delphi-Quellcode:
var parameter := command.CreateParameter();
|
Re: Merkwürdiges SELECT-Verhalten des Firebird .Net DataProv
Zitat:
Falls du die Klammern meinst: jain, finde ich hübscher so. |
Re: Merkwürdiges SELECT-Verhalten des Firebird .Net DataProv
Moin Elvis,
Zitat:
|
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. ;) |
Re: Merkwürdiges SELECT-Verhalten des Firebird .Net DataProv
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
|
Re: Merkwürdiges SELECT-Verhalten des Firebird .Net DataProv
Zitat:
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. ![]() |
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:
Vllt hast du ja Glück und irgend eine pre alpha-beta irgendwas läuft wieder/immernoch vernünftig...
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(); } |
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 10:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz