Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Wieder Probleme mit Firebird (https://www.delphipraxis.net/71119-wieder-probleme-mit-firebird.html)

Mavarik 9. Jun 2006 09:33

Datenbank: Firebird • Version: 1.5 • Zugriff über: D2005 & IBTable

Wieder Probleme mit Firebird
 
Hallo Zusammen!

Ich habe mit IBOConsole eine Datenbank und eine Tabelle erzeugt... Prima

Ich stelle mit IBDatabase1 eine Verbindung her... Prima

Ich kann in der Combobox der IBTable1 die Tabelle auswählen... Prima

Wenn ich die Tabelle jetzt jedoch auf Active := true setze, erhalte ich eine Fehlermeldung:

Dynamic SQL Error
SQL error code = -204
Table unknown
myTable
At line 1,column 59.

Die Tabelle wurde jedoch vorher gefunden. s.o.

Any Ideas?`

Frank

MagicAndre1981 9. Jun 2006 09:47

Re: Wieder Probleme mit Firebird
 
Bitte, lass die IBTable weg und nimm das IBDataSet :roll:

Lemmy 9. Jun 2006 09:52

Re: Wieder Probleme mit Firebird
 
Hi,

ich finde es immer toll hier im Forum... Da kommt endlich meine Glaskugel zum Einsatz, die ich vor kurzem bei Ebay von Harry Potter abgekauft habe, der brauchst sie ja jetzt nicht mehr... ;-)

Ich rate mal: aufgrund der Fehlermeldung (myTable) gehe ich davon aus dass Dein Create Table so ausgesehen hat:

SQL-Code:
CREATE TABLE "myTable"......
d.h. Groß/Kleinschreibung wird beachtet (wegen den "). Evtl. hat TIBTable ein Problem mit Case-sensitiven Tabellennamen (das ist einfach geraten). Also muss der Tabellenname auch bei allen SQL mit "" geschrieben werden mit korrekter Groß/Kleinschreibung.

Wobei ich mich frage, weshalb Du ein TIBTable verwendest, vermutlich aber zur Umstellung einer alten BDE-Anwendung. Die Hinweise zu TIBTable in diesem Forum und im Rest des www hast Du sicherlich gelesen, hier nochmal die Kurzfassung: TIBTable soll nur für Umstellungen verwendet werden und soll dann auch rausgeworfen werden und durch TIBDataSet ersetzt werden. WEnn Du also rumtestest, dann verwende am besten gleich TIBDataSet.

So, wenn das alles unwahr ist und meine Glaskugel einfach nur Sch**** ist, dann stell wenigstens das von Dir verwendete SQL-Statement rein, mit dem Du die Tabelle gemacht hast.

Grüße
Lemmy

Mavarik 9. Jun 2006 10:05

Re: Wieder Probleme mit Firebird
 
Zitat:

Zitat von Lemmy
Hi,

ich finde es immer toll hier im Forum... Da kommt endlich meine Glaskugel zum Einsatz, die ich vor kurzem bei Ebay von Harry Potter abgekauft habe, der brauchst sie ja jetzt nicht mehr... ;-)

Na das ist doch Prima...

1. Habe keinen einzigen SQL Befehl benutzt.
2. Mit IBOConsole habe ich "myTable" geschrieben und als Fehlermeldung - Sorry hatte ich nicht so wieder gegeben wird "MYTABLE" zurückgegeben...
3. Der gleiche Fehler tritt auch mit IBDataSet auf!!!

Also hat die Componente selber ein Uppercase durchgeführt????

Frank

mkinzler 9. Jun 2006 10:27

Re: Wieder Probleme mit Firebird
 
Welcher Dialect (Anlage/Zugriff)?

Mavarik 9. Jun 2006 10:31

Re: Wieder Probleme mit Firebird
 
Zitat:

Zitat von mkinzler
Welcher Dialect (Anlage/Zugriff)?

Keine Ahnung was das bedeutet, aber ich habe eine neue Tabelle in UPPERCASE angelegt und die funktioniert...

Natürlich kann Firebird kein Rename....

Frank

Lemmy 9. Jun 2006 10:42

Re: Wieder Probleme mit Firebird
 
Hi,

ich habe es gerade getestet:

IBOConsole macht ein

CREATE TABLE "myTest"

d.h. wenn Du die Tabellen-Zusammenklick-Funktion von IBOConsole verwendest, werden die Tabellennamen und auch die Spaltennamen case-sensitive angelegt, d.h. Du musst in allen verwendeten SQL-Statements auch case-sensitive arbeiten:

SQL-Code:
Select * from "myTable";
dann geht es.

Um den Aufwand zu umgehen, erstellst Du deine Datenbank besser per SQL-Script (also die Create Befehle von Hand schreiben), was auf die Dauer auch wesentlich schneller geht als zusammenklicken. Wenn die im SQL-Script die " bei den Tabellen/Spaltennamen weglässt wird alles groß geschrieben.

Lemmy

Mavarik 9. Jun 2006 11:34

Re: Wieder Probleme mit Firebird
 
Tja habe leider keine Ahnung von SQL...
Daher habe ich die Tabelle "zusammengeklickt"

Habe jetzt da kein Rename möglich war eine neue Tabelle angelegt.

Uppercase...

Leider wieder die Feldname "Game" geschrieben...

Jetzt kann ich nicht auf die Felder zugreifen....

Toll....

Habe dann Daten über die IBConsole eingetragen, diese werden dann in meinem
Stringrid nicht gelistet...

Funktioniert eigentlich irgentetwas?

Frank

(Ich glaube ich nehme doch wieder den Jet-Treiber und *.mdb das läuft schon jahrelang fehlerfrei!!!)

Lemmy 9. Jun 2006 11:39

Re: Wieder Probleme mit Firebird
 
Hi,

eine Spalte kannst Du mit

SQL-Code:
alter Table "test" alter "test" to TEST
umbenennen. Eine Tabelle umbenennen geht IMHO nicht.

WEnn Du mit Firebird halbwegs arbeiten willst, wirst Du um SQL nicht herumkommen. Schau mal auf meine Seite, da gibts ne handvoll Einsteigertutorials (auch SQL), vielleicht helfen die dir weiter....

Lemmy

Mavarik 9. Jun 2006 11:42

Re: Wieder Probleme mit Firebird
 
Zitat:

Zitat von Lemmy
Hi,

eine Spalte kannst Du mit

SQL-Code:
alter Table "test" alter "test" to TEST
umbenennen. Eine Tabelle umbenennen geht IMHO nicht.

WEnn Du mit Firebird halbwegs arbeiten willst, wirst Du um SQL nicht herumkommen. Schau mal auf meine Seite, da gibts ne handvoll Einsteigertutorials (auch SQL), vielleicht helfen die dir weiter....

Lemmy

Leider nicht!

ISC ERROR CODE:335544351

ISC ERROR MESSAGE:
unsuccessful metadata update
MODIFY RDB$RELATION_FIELDS failed
action cancelled by trigger (1) to preserve data integrity
Cannot update index segment used by an Integrity Constraint

Elvis 9. Jun 2006 11:57

Re: Wieder Probleme mit Firebird
 
Firebird ist nicht Paradox oder MS Jet!
Du kannst nicht einfach mal so eine App bauen, die FB als Daten Backend nutzt ohne zu wissen was du tust. ;)

Die oberen beiden "DBMS"se sind der klassische Fall für die, die keine Ahnung haben wollen.
Auch wenn's vllt fies klingt: Willst du bei deiner aktuellen Einstellung bleiben, wärst du da besser aufgehoben...

Mavarik 9. Jun 2006 12:02

Re: Wieder Probleme mit Firebird
 
Zitat:

Zitat von Elvis
Firebird ist nicht Paradox oder MS Jet!
Du kannst nicht einfach mal so eine App bauen, die FB als Daten Backend nutzt ohne zu wissen was du tust. ;)

Die oberen beiden "DBMS"se sind der klassische Fall für die, die keine Ahnung haben wollen.
Auch wenn's vllt fies klingt: Willst du bei deiner aktuellen Einstellung bleiben, wärst du da besser aufgehoben...

Super Antwort Danke für die Hilfe...

mkinzler 9. Jun 2006 12:07

Re: Wieder Probleme mit Firebird
 
Lager deine DB am Besten in ein Skript (inkl. daten) aus, ändere die Namen darin, lösche die DB und erstelle sie mit dem Skript neu.

Lemmy 9. Jun 2006 12:10

Re: Wieder Probleme mit Firebird
 
Zitat:

Zitat von Mavarik
Leider nicht!

ISC ERROR CODE:335544351

ISC ERROR MESSAGE:
unsuccessful metadata update
MODIFY RDB$RELATION_FIELDS failed
action cancelled by trigger (1) to preserve data integrity
Cannot update index segment used by an Integrity Constraint

jetzt komm... etwas Englisch solltest Du doch auch verstehen.... Die Spalte konnte nicht umbenannt werden, weil sie Teil einer Relation ist (RDB$Relation_fields). Schau also, was für nen Fremdschlüssel du erzeugt hast, lösche den und dann kannst Du umbenennen...

Lemmy

P.S.: Generell stimme ich Elvis zu (zumindest dem ersten Teil seines Statements): Firebird ist nicht Access. Vieles musst Du neu lernen, vieles musst Du anders machen und generell ist am Anfang Access für Dich einfacher als Firebird. Wenn Du die ersten Hürden aber genommen hast (und dazu gehört auch SQL), dann wirst Du feststellen, dass auch Firebird viele Vorteile und Features hat, die Du in Access schlicht nicht findest.


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