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 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... |
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. http://www.planet3dnow.de/vbulletin/...s/noahnung.gif :? |
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 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