AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Doppelte durch einfache Hochkommas ersetzen

Ein Thema von Delbor · begonnen am 20. Sep 2019 · letzter Beitrag vom 26. Sep 2019
Antwort Antwort
Seite 2 von 2     12
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
831 Beiträge
 
Delphi 10.3 Rio
 
#11

AW: Doppelte durch einfache Hochkommas ersetzen

  Alt 20. Sep 2019, 18:13
Hi Uwe Raabe

Das Script 'funktioniert' in Workbench überhaupt nicht. Workbench kann erst genutzt werden, wenn eine aktive Verbindung zum MySQL-Server besteht(*). Für den MySQL-Server generiert MySQL-Workbench (**) zum Beispiel folgendes Script:
Delphi-Quellcode:
-- -----------------------------------------------------
-- Table `ContentMasterData`.`kategorien_tabelle`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `ContentMasterData`.`kategorien_tabelle` ;

CREATE TABLE IF NOT EXISTS `ContentMasterData`.`kategorien_tabelle` (
  `Kath_ID` INT UNSIGNED NOT NULL AUTO_INCREMENT,
  `Kategorie` VARCHAR(120) CHARACTER SET 'latin1NOT NULL,
  PRIMARY KEY (`Kath_ID`))
ENGINE = InnoDB
AUTO_INCREMENT = 3
DEFAULT CHARACTER SET = latin1;


-- -----------------------------------------------------
-- Table `ContentMasterData`.`bildtabelle`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `ContentMasterData`.`bildtabelle` ;

CREATE TABLE IF NOT EXISTS `ContentMasterData`.`bildtabelle` (
  `idBild` INT UNSIGNED NOT NULL AUTO_INCREMENT,
  `Thumbnail` BLOB NULL,
  `Bitmap` BLOB NULL,
  `Jpeg` BLOB NULL,
  `FolderId` VARCHAR(32) NULL,
  PRIMARY KEY (`idBild`))
ENGINE = InnoDB
DEFAULT CHARACTER SET = latin1;
Was auffällt: Hier sind die Feldnamen in accents eingeschlossen - den selben accents, die von MySQL-Autoren benutzt werden, um an der Comandozeile MySQL-Tabellen zu erstellen.
Im SQLite-Manual hingegen wird darauf hingewiesen, dass in SQLite einfache Hochkommas verwendet werden wie in Pascal. Allerdings muss ich zugeben, dass mir nicht bekannt ist, in welcher Form SQLite Tabellennamen erwartet. Zur Zeit kann ich das nicht nachschlagen - die Waschküche wartet. ***

Gruss
Delbor

* Zumindest nur dann kann mit Forward- oder Reverse Engineering gearbeitet werden.
** Sorry, ich hab den Namen "MySQL Workbench daurch abgekürzt,dass ich den ersten Teil weggelassen habe. Das hätte ich gleich im ersten Thread schreiben sollen.

*** PS: Heute Samstag habe ich das Manual durchsucht, aber nirgends etwas explzit zu Tabellennamen gefunden. Beispielcode hingegen steht genug da - und da nirgends Hochkommas, ausser wenn ein Wert in eine Spalte als String geschrieben werden soll:
Delphi-Quellcode:
 CREATE TABLE t1 (a INT, b VARCHAR (10));
 INSERT IN t1 (a, b) VALUES ('123', 456);
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch

Geändert von Delbor (21. Sep 2019 um 15:20 Uhr) Grund: PS hinzugefügt
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
2.654 Beiträge
 
Delphi 2010 Enterprise
 
#12

AW: Doppelte durch einfache Hochkommas ersetzen

  Alt 21. Sep 2019, 14:59
Ich versteh ehrlich gesagt nicht so recht, warum Du Dich damit so lange aufhältst.

Es dauert 2 Minuten eine Beispieltabelle mit Doppelten Anführungszeichen oder mit einfachen oder ohne in Delphi gegen ein sqlite laufen zu lassen.
die Internetsuche ist eher schneller:
https://www.sqlite.org/lang_keywords.html
Zitat:
If you want to use a keyword as a name, you need to quote it. There are four ways of quoting keywords in SQLite:

'keyword' A keyword in single quotes is a string literal.
"keyword" A keyword in double-quotes is an identifier.
[keyword] A keyword enclosed in square brackets is an identifier. This is not standard SQL. This quoting mechanism is used by MS Access and SQL Server and is included in SQLite for compatibility.
`keyword` A keyword enclosed in grave accents (ASCII code 96) is an identifier. This is not standard SQL. This quoting mechanism is used by MySQL and is included in SQLite for compatibility.
Zitat:
//automatisch übersetzt
Wenn Sie ein Schlüsselwort als Namen verwenden möchten, müssen Sie es angeben. Es gibt vier Möglichkeiten, Keywords in SQLite zu zitieren:

'Schlüsselwort'
Ein Schlüsselwort in einfachen Anführungszeichen ist ein Zeichenkettenliteral.
"Schlüsselwort"
Ein Schlüsselwort in doppelten Anführungszeichen ist ein Bezeichner.
[Schlüsselwort]
Ein in eckige Klammern gesetztes Schlüsselwort ist ein Bezeichner. Dies ist kein Standard-SQL. Dieser Angebotsmechanismus wird von MS Access und SQL Server verwendet und ist aus Kompatibilitätsgründen in SQLite enthalten.
`Schlüsselwort`
Ein in backticks eingeschlossenes Schlüsselwort (ASCII-Code 96) ist ein Bezeichner. Dies ist kein Standard-SQL. Dieser Angebotsmechanismus wird von MySQL verwendet und ist aus Kompatibilitätsgründen in SQLite enthalten.
Wenn Du jetzt in der Situation bist, dass Du noch 200 Tabellen erzeugen musst und einen schlanken, schnellen und reproduzierenbaren Weg suchst, dann vielleicht nicht als Ausgangspunkt das mysql tool nehmen.

10 Tabellen hast Du auch eben mit der Hand geschrieben. Und Du wärst schon seit Tagen dabei, Deine Anwendung zu programmieren.

*Die Quotes werden in der Regel eingesetzt, um non ASCI Zeichen verwenden zu können oder auch Schlüsselwörter.
Wenn Du sowieso deutsche Bezeichner verwendest, dürfte der letzte Fall ausgeschlossen sein und statt Umlauten empfiehlt sich dann die zusammengesetzte Schreibweise ae, ue, oe, ss.
Also bräuchtest Du keine Quotes, sind sie vorhanden, würde es aber auch nicht stören.
Gruß, Jo
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
831 Beiträge
 
Delphi 10.3 Rio
 
#13

AW: Doppelte durch einfache Hochkommas ersetzen

  Alt 21. Sep 2019, 16:08
Hi jobo

Zitat:
10 Tabellen hast Du auch eben mit der Hand geschrieben. Und Du wärst schon seit Tagen dabei, Deine Anwendung zu programmieren.
Das ist sicher richtig. Hätte ich die Hochkommas bearbeitet, ohne diesen Thread zu schreiben, wäre ich schon längst damit fertig, müsste aber dieselbe Arbeit das nächste mal voraussichtlich wieder machen. So hab ich auch anderes zu SQLite gelernt.

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
2.654 Beiträge
 
Delphi 2010 Enterprise
 
#14

AW: Doppelte durch einfache Hochkommas ersetzen

  Alt 23. Sep 2019, 11:23
Das sollte meinerseits absolut kein Appel sein, nichts zu lernen.

Der Gedanke ist eher:
- Ein Tool soll auch wirklich helfen, also vielleicht einen Thread für das beste sqlite Modeling Tool eröffnen.
(mysql tools für sqlite scheint jedenfalls nicht die beste Wahl zu sein.)
- Falls Handbuch und kluge Ratschläge mal nicht erreichbar sind, tut's oft auch ein wenig ausprobieren, ist ja kein Atomkraftwerk.
Gruß, Jo
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
831 Beiträge
 
Delphi 10.3 Rio
 
#15

AW: Doppelte durch einfache Hochkommas ersetzen

  Alt 25. Sep 2019, 12:02
Hi jobo

Das sollte meinerseits absolut kein Appel sein, nichts zu lernen.

Der Gedanke ist eher:
- Ein Tool soll auch wirklich helfen, also vielleicht einen Thread für das beste sqlite Modeling Tool eröffnen.
(mysql tools für sqlite scheint jedenfalls nicht die beste Wahl zu sein.)
- Falls Handbuch und kluge Ratschläge mal nicht erreichbar sind, tut's oft auch ein wenig ausprobieren, ist ja kein Atomkraftwerk.
Da bin ich schon länger auf der Suche und scheine da was auch gefunden zu haben: DBDesignerFork. Der liegt allerdings als Lazarus-Anwendung vor.

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
2.654 Beiträge
 
Delphi 2010 Enterprise
 
#16

AW: Doppelte durch einfache Hochkommas ersetzen

  Alt 26. Sep 2019, 08:28
Hab mal nachgeschaut, sieht nicht so aus, als ob sich noch jemand um die Pflege dieses Programms kümmert.
Da würde ich eher nach etwas suchen, wo es mehr Aktivitäten gibt.Bzw. gibt es ja auch von Emba/Idera entsprechende Werkzeuge. Logische und dann physikalische Modellierung mit Produkt spezifischer Syntax sollte bei Kaufsoftware natürlich kein Problem darstellen.

Ich hab mir auch irgendwann mal ein Excelsheet * gebaut, was aus Tabellennamen und Feldlisten, -Typen usw. vollständige Skripte baut. Je nach Bedarf und Problemstellung kann man hier sehr effizient arbeiten. Z.B ist es in Excel besonders einfach, systematisch und flexibel Suffixe oder Präfixe in Feldnamen oder Tabellennamen einzubauen, zu ändern oder Interfaceviews zu generieren.

* Ich meine natürlich Tabellenkalkulationssoftware allgemein, Excel braucht man nicht dafür.
Gruß, Jo
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
831 Beiträge
 
Delphi 10.3 Rio
 
#17

AW: Doppelte durch einfache Hochkommas ersetzen

  Alt 26. Sep 2019, 10:44
Hi jobo
Hab mal nachgeschaut, sieht nicht so aus, als ob sich noch jemand um die Pflege dieses Programms kümmert.
Da würde ich eher nach etwas suchen, wo es mehr Aktivitäten gibt.Bzw. gibt es ja auch von Emba/Idera entsprechende Werkzeuge. Logische und dann physikalische Modellierung mit Produkt spezifischer Syntax sollte bei Kaufsoftware natürlich kein Problem darstellen.
Ich weiss nicht, was die Idera-Tools kosten, aber ich würde vermuten, dass die Preise da in etwa in der Höhe einer IDE anzusiedeln sind, und das übersteigt meine Möglichkeiten.
Tools, mit denen Datenbanken erstellt werden können, gibt es genügend - eines davon ist frei als Plugin für Firefox erhältlich(SQLite-Manager). Aber keines dieser Tools bietet eine Möglichkeiten á la MySQL-Workbench, DB-Modelle erstmal grafisch zu erstellen.
Ich hab hier den SQLite Expert Personal auf der Platte, dessen Professional-Version eine grafische Oberfläche bieten würde, aber kostenpflichtig ist.

Andrerseits hab ich mir aus dem Codeschnipsel von HolgerX ein kleines Tool gebaut, mit dem ich einen SQL-String in das richtige Format bringen kann.

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 00:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf