AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Firebird + IBOConsole: unbekannte Tabelle
Thema durchsuchen
Ansicht
Themen-Optionen

Firebird + IBOConsole: unbekannte Tabelle

Ein Thema von Piro · begonnen am 4. Nov 2006 · letzter Beitrag vom 6. Nov 2006
Antwort Antwort
Seite 2 von 2     12   
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#11

Re: Firebird + IBOConsole: unbekannte Tabelle

  Alt 5. Nov 2006, 13:13
Habe den Text hier gefunden und war so frei, den betreffenden Abschnitt anzuhängen. Quelle sind die offiziellen Firebird-Seiten. Finde ich die Internet-Quelle wieder, dann poste ich sie noch. Das wichtigste direkt hier :

Zitat von Firebird:
Before the SQL-92 standard, it was not legal to have object names (identifiers) in a database that duplicated keywords in the language, were case-sensitive or contained spaces. SQL-92 introduced a single new standard to make any of them legal, provided that the identifiers were defined within pairs of double-quote symbols (ASCII 34) and were always referred to using double-quote delimiters.
The purpose of this “gift” was to make it easier to migrate metadata from non-standard RDBMSs to standards-compliant ones. The down-side is that, if you choose to define an identifier in double quotes, its case-sensitivity and the enforced double-quoting will remain mandatory.
Das “gift” könnte man IMHO für diesen Fall 1:1 ins Deutsche übersetzen. mandatory heißt übrigend obligatorisch. Der Text im Anhang enthält noch zwei Warnkästen. Der eine geht direkt hier auf diese Frage ein. Im zweiten ist meine Warnung wegen des Admin-Tools auch nachzulesen. In IBExpert gibt es eine CheckBox "always capitalize database names". Die ist standardmäßig angekreuzt und wenn man das nicht ändert, dann wird niemals ein Problem auftauchen in Richtung "quotes". Andere Admin-Tools gehen eventuell davon aus, daß quotes Standard sind und dann tauchen Probleme wie jetzt eben auf.
Angehängte Dateien
Dateityp: doc doublequotes_371.doc (22,0 KB, 5x aufgerufen)
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#12

Re: Firebird + IBOConsole: unbekannte Tabelle

  Alt 5. Nov 2006, 16:25
Hi Leute,

ich habe mir mal das Tool IBexpert gezogen und dann die DB mit Tabelle erzeugt und es funktioniert alles. Keine Ahnung watum das mit IBOConsole nicht ging. Jetzt gehts und das ist die Hauptsache.

Danke euch.

P.S.: IBexpert ist ganz schon mächtig und man kann ne Menge einstellen.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#13

Re: Firebird + IBOConsole: unbekannte Tabelle

  Alt 5. Nov 2006, 19:05
Aha. Problem soweit gelöst.

Zitat von daywalker299:
...und man kann ne Menge einstellen.
Aber nicht einstellen verwechseln mit verstellen !

Nur das hier, das kann man nicht so im Raum stehen lassen :

Zitat von mkinzler:
...Aber wenn eine Tabelle mal Adressen heißt, muß man sie natürlich immer gequotet ansprechen, egal wie/aus was der Zugriff erfolgt.
Eben nicht ! Ich habe nirgends quotes und brauche mir auch nicht die Mühe zu machen, auf Groß/Kleinschreibung zu achten. Der Dialect 3 spielt da auch mit. Lege ich mit IBExpert eine Tabelle an, dann heißt die z.B. ADRESSEN. Nun will ich im Delphi-Programm die Daten haben und schreibe folgendes :

Delphi-Quellcode:
DataSet.Close;
DataSet.SelectSQL.Text := 'SELECT * FROM ADRESSEn';
DataSet.Open;
Man beachte den gewollten Schreibfehler mit dem kleinen n am Schluß. Sollte das Programm aber nicht aus den Angeln heben können. 8) Ist schnell passiert und irgendein Admin-Tool spielt da überhaupt keine Rolle ! Wieso sollte ich da jetzt gezwungen sein, quotes zu verwenden ?

Gut, machen wir das eben mal so (wie gesagt Delphi-Programm und nicht irgendein Admin-Tool !) :

Delphi-Quellcode:
DataSet.Close;
DataSet.SelectSQL.Text := 'SELECT * FROM adresseN';
DataSet.Open;
Was soll ich denn da mit den quotes anfangen ? Wozu sollen die was nützen ? Anders wäre folgender Fall zu sehen : CREATE TABLE "ADRESSEn" Ab da würden meine Delphi-Beispiele ungleiche Ergebnisse liefern. Wahrscheinlich wohl gar nichts. Aber es steht ja alles sowieso in dem Text drin.
Gruß
Hansa
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#14

Re: Firebird + IBOConsole: unbekannte Tabelle

  Alt 5. Nov 2006, 19:10
Zitat:
Nur das hier, das kann man nicht so im Raum stehen lassen :

mkinzler hat folgendes geschrieben:
...Aber wenn eine Tabelle mal Adressen heißt, muß man sie natürlich immer gequotet ansprechen, egal wie/aus was der Zugriff erfolgt.


Eben nicht !
Eben doch. Wenn die Tabelle einmal case-sensitiv angelegt ist, muß man auf diese auch so zugreifen!
Markus Kinzler
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#15

Re: Firebird + IBOConsole: unbekannte Tabelle

  Alt 5. Nov 2006, 20:38
Dann kläre mich mal bitte auf, wie man eine normale FB-DB dazu bringen kann, daß Fehler kommen in Richtung Groß/Kleinschreibung. Und dann noch einen Grund "quotes" zu benutzen. Wo einem eben nichts anderes mehr übrigbleibt, als tatsächlich so was zu benutzen. Habe mal ein kleines Testprojekt gemacht :

Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
begin
  DS.Close;
  DS.SelectSQL.Text := 'SELECT * FROM taBLe WHERE bez LIKE UPPER (''%TesT%'')';
  DS.Open;
  while not DS.Eof do begin
    showmessage (DS.FieldByName ('NamE').AsString);
    DS.Next;
  end;
end;
Wie man sieht : keine "quotes". Und ob ich das komplett Groß/Klein schreibe oder gemischt wie im Beispiel : es geht immer.
Gruß
Hansa
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#16

Re: Firebird + IBOConsole: unbekannte Tabelle

  Alt 5. Nov 2006, 20:44
Wir reden an einannder vorbei. Er oder IBObjects) hat die Tabell als 'Adressen' angelegt. Dann muß er es auch so ansprechen.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#17

Re: Firebird + IBOConsole: unbekannte Tabelle

  Alt 5. Nov 2006, 23:04
Hi,

übrigens habe ich es auch mit IBOConsole jetzt hinbekommen. Habe irgendwie etwas falsch eingestellt.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#18

Re: Firebird + IBOConsole: unbekannte Tabelle

  Alt 5. Nov 2006, 23:21
Also gut. Es liegt im Prinzip tatsächlich am Admin Tool :

Fallstudie. Mit IBExpert durchexerziert. Man sehe sich das mal an :

SQL-Code:
CREATE TABLE TEST (
    NEW_FIELD INTEGER
);

CREATE TABLE "test" (
    NEW_FIELD INTEGER
);

1. Fall : Einstellung "always capitalize..." ist angekreutzt.

2. Fall : anders rum.

Das betrifft die "quotes" und zeigt, warum die unnötig sind und lediglich Ärger machen ! Sage ich ja schon die ganze Zeit. Habe lediglich in IBExpert oben bei NEW_TABLE den Namen auf test abgeändert.

Und man sieht ja schön, was dabei raus kommt. Es gilt eben einfach, "quotes" zu vermeiden. Durch Neuanlegen der Table mit vernünftigem Tool war die Fehlerquelle ja sowieso automatisch auch weg. Ursache : siehe oben. Genauso gut hätte man die "" manuell entfernen können.
Gruß
Hansa
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#19

Re: Firebird + IBOConsole: unbekannte Tabelle

  Alt 6. Nov 2006, 06:44
Zitat:
Das betrifft die "quotes" und zeigt, warum die unnötig sind und lediglich Ärger machen ! Sage ich ja schon die ganze Zeit. Mr. Green Habe lediglich in IBExpert oben bei NEW_TABLE den Namen auf test abgeändert.

Und man sieht ja schön, was dabei raus kommt. Es gilt eben einfach, "quotes" zu vermeiden. Durch Neuanlegen der Table mit vernünftigem Tool war die Fehlerquelle ja sowieso automatisch auch weg. Ursache : siehe oben. Genauso gut hätte man die "" manuell entfernen können.
Die Verwendung von Groß-/kleinschreibung in tabellen/spaltennamen ist ein Feature und kein Bug. Man kann sich darüber Streiten ob es sinnvoll ist, aber man kann es aber nicht pauschal als "Gift" bezeichen oder ein Admin-Tool, daß diese benutzt als nicth vernünftig.
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 02:17 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