AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Prism Merkwürdiges SELECT-Verhalten des Firebird .Net DataProvider
Thema durchsuchen
Ansicht
Themen-Optionen

Merkwürdiges SELECT-Verhalten des Firebird .Net DataProvider

Ein Thema von r_kerber · begonnen am 28. Dez 2005 · letzter Beitrag vom 4. Jan 2006
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#1

Merkwürdiges SELECT-Verhalten des Firebird .Net DataProvider

  Alt 28. Dez 2005, 12:40
Datenbank: Firebird • Version: 1.5 • Zugriff über: ADO.Net
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?
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#2

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

  Alt 29. Dez 2005, 18:01
Kann sich das wirklich niemand erklären?
Nachtrag:
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.
  Mit Zitat antworten Zitat
Benutzerbild von MagicAndre1981
MagicAndre1981

Registriert seit: 4. Jun 2004
Ort: Nordhausen
2.214 Beiträge
 
Delphi 7 Enterprise
 
#3

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

  Alt 29. Dez 2005, 21:02
Welche Version des ADO.NET Providers nutzt du?

Zeig mal bitte die Definition deiner Tabelle.

André
André
"A programmer is just a tool which converts caffeine into code", daran wirds wohl liegen, dass ich Abends nie pennen kann

Zitat von Luckie:
Nicht nur dass ihr offtopic geworden seid, jetzt werdet ihr selber im Offtopic noch offtopic
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#4

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

  Alt 30. Dez 2005, 04:41
Zitat von MagicAndre1981:
Welche Version des ADO.NET Providers nutzt du?
1.7
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                              ****/
/******************************************************************************/
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#5

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

  Alt 30. Dez 2005, 11:48
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: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...
Robert Giesecke
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#6

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

  Alt 30. Dez 2005, 12:12
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 von r_kerber:
  daSpiele.SelectCommand.CommandText := 'SELECT termin, ort, m1, m2, t1, t2 ' +
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.
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#7

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

  Alt 30. Dez 2005, 12:45
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...

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...
Robert Giesecke
  Mit Zitat antworten Zitat
Benutzerbild von MagicAndre1981
MagicAndre1981

Registriert seit: 4. Jun 2004
Ort: Nordhausen
2.214 Beiträge
 
Delphi 7 Enterprise
 
#8

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

  Alt 30. Dez 2005, 16:26
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
André
"A programmer is just a tool which converts caffeine into code", daran wirds wohl liegen, dass ich Abends nie pennen kann

Zitat von Luckie:
Nicht nur dass ihr offtopic geworden seid, jetzt werdet ihr selber im Offtopic noch offtopic
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#9

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

  Alt 31. Dez 2005, 06:54
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.
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 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.
Angehängte Dateien
Dateityp: zip fussball_460.zip (38,8 KB, 7x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von MagicAndre1981
MagicAndre1981

Registriert seit: 4. Jun 2004
Ort: Nordhausen
2.214 Beiträge
 
Delphi 7 Enterprise
 
#10

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

  Alt 31. Dez 2005, 19:10
Also bei mir gehts. Ich habe die DB angelegt und die Daten befüllt. Das SELECT funzzt.
André
"A programmer is just a tool which converts caffeine into code", daran wirds wohl liegen, dass ich Abends nie pennen kann

Zitat von Luckie:
Nicht nur dass ihr offtopic geworden seid, jetzt werdet ihr selber im Offtopic noch offtopic
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:23 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