AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi MYSQL Direct --> Tabelle erstellen
Thema durchsuchen
Ansicht
Themen-Optionen

MYSQL Direct --> Tabelle erstellen

Ein Thema von Logan · begonnen am 5. Mai 2008 · letzter Beitrag vom 7. Mai 2008
Antwort Antwort
Logan

Registriert seit: 27. Dez 2005
Ort: Hamburg
42 Beiträge
 
#1

MYSQL Direct --> Tabelle erstellen

  Alt 5. Mai 2008, 20:39
Datenbank: MySQL • Version: 5.1 • Zugriff über: MYSQL Direct
Abend!

Ich habe mich heute ein wenig mit MySQL Direct beschäftigt (http://www.delphi-treff.de/tutorials.../mysql-direct/) und musste leider etwas spät feststellen, dass man damit keine Tabellen erstellen kann (ist nicht im Tutorial enthalten).
Sowas müsste doch eine Datenbankverbindung unterstützen!

Weiß einer, ob dies möglich ist? Und falls ja wäre ein "wie" nett

Danke schon einmal!

MfG
Logan
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: MYSQL Direct --> Tabelle erstellen

  Alt 5. Mai 2008, 22:17
Zitat von Logan:
Sowas müsste doch eine Datenbankverbindung unterstützen!
Kann doch jede. Einfach das Create Table DDL schreiben und dann mit Exec(ute) bzw. ExecSQL zur DB abschicken. Und nicht vergessen das der verwendete User die entsprechenden Rechte besitzen muss.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Logan

Registriert seit: 27. Dez 2005
Ort: Hamburg
42 Beiträge
 
#3

Re: MYSQL Direct --> Tabelle erstellen

  Alt 5. Mai 2008, 23:17
Zitat:
Kann doch jede.
SQL Direct besitzt solche Methoden nicht
  Mit Zitat antworten Zitat
christian_r
(Gast)

n/a Beiträge
 
#4

Re: MYSQL Direct --> Tabelle erstellen

  Alt 6. Mai 2008, 05:33
Zitat von Logan:
SQL Direct besitzt solche Methoden nicht
MySQL Direct muss sie auch nicht besitzen. Denn es schickt lediglich Deine Query an die Datenbank-Engine, und diese entscheidet, ob die Query ausführbar ist oder nicht, und sendet Dir entweder einen Fehlercode mit entsprechender Fehlermeldung oder ein Ergebnis.

Wäre es umgedreht, dann müsste MySQL Direct quasi eine eigene DB-Engine verwenden, damit auch jede denkbare Kombination von MySQL-Syntax vor dem Versenden validiert werden kann. Die DB-Engine müsste zusätzlich konsequent weiterentwickelt werden um neue MySQL-Versionen unterstüzen zu können. Das wäre dann ein völlig abwegiges Konzept.
  Mit Zitat antworten Zitat
Benutzerbild von Deltachaos
Deltachaos

Registriert seit: 20. Feb 2008
Ort: Berlin
195 Beiträge
 
Delphi 7 Personal
 
#5

Re: MYSQL Direct --> Tabelle erstellen

  Alt 6. Mai 2008, 17:06
Zitat von christian_r:
Zitat von Logan:
SQL Direct besitzt solche Methoden nicht
MySQL Direct muss sie auch nicht besitzen. Denn es schickt lediglich Deine Query an die Datenbank-Engine, und diese entscheidet, ob die Query ausführbar ist oder nicht, und sendet Dir entweder einen Fehlercode mit entsprechender Fehlermeldung oder ein Ergebnis.

Wäre es umgedreht, dann müsste MySQL Direct quasi eine eigene DB-Engine verwenden, damit auch jede denkbare Kombination von MySQL-Syntax vor dem Versenden validiert werden kann. Die DB-Engine müsste zusätzlich konsequent weiterentwickelt werden um neue MySQL-Versionen unterstüzen zu können. Das wäre dann ein völlig abwegiges Konzept.
Da ich mich in letzter Zeit auch mit dem Thema beschäftigt habe kann ich dir meines wissens nach volgendes veraten:

Delphi-Quellcode:

  form1.FMysql.Host := 'IP';
  form1.FMysql.port := 3306; //soweit ich weis standard

  form1.FMysql.user := 'dfgdfg'; //username
  form1.FMysql.password := 'dshfhd'; //Password dser Dtb.
  form1.FMysql.UnixSocket := '';
  form1.FMysql.Db := 'gkfkg'; // Datenbank auf dem Server

  form1.FMysql.UseNamedPipe := false;
  form1.FMysql.UseSSL := false;
  form1.FMysql.Compress := true;
  form1.FMysql.TrySockets := false;
  if form1.FMysql.Connect //wen verbunden
  then
    ...
  else
    ...
fals du dass noch nicht wusstest. aber jetzt zum interresanten teil.

Delphi-Quellcode:
var ex: boolean;
begin
  form1.FMysql.query('"Tabellen_Name"("Spalte 1" "Datentyp_für_Spalte_1","Spalte 2" "Datentyp_für_Spalte_2")', true,
  ex);
{
  Bsp.
    CREATE TABLE customer
    (First_Name char(50),
    Last_Name char(50),
    Address char(50),
    City char(50),
    Country char(25),
    Birth_Date date) 
näheres dazu [url=http://sql.1keydata.com/de/sql-create-table.php]hier[/url]
}

  if ex
  then
    showmessage('Befehl Ausgefürt')
  else
    showmessage('FEHLER: ' + FMysql.LastError); //MySQL Fehlermeldung ausgeben
end;
soweit ich weis kanst du per Query jeden MySQL Befehl ausfüren. binn mir aber nicht sicher!

Maximilian Ruta
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: MYSQL Direct --> Tabelle erstellen

  Alt 6. Mai 2008, 17:09
Naja, der CREATE TABLE-Befehl fehlt da irgendwie
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Logan

Registriert seit: 27. Dez 2005
Ort: Hamburg
42 Beiträge
 
#7

Re: MYSQL Direct --> Tabelle erstellen

  Alt 6. Mai 2008, 17:49
Ah mit der query Methode kann man das also machen?!
Die Methode hätten die Entwickler auch anders benennen können -.- Bzw von der eigentlichen Query Methode abkoppeln...
Vielen Dank!!!
  Mit Zitat antworten Zitat
christian_r
(Gast)

n/a Beiträge
 
#8

Re: MYSQL Direct --> Tabelle erstellen

  Alt 6. Mai 2008, 19:41
Zitat von DeddyH:
Naja, der CREATE TABLE-Befehl fehlt da irgendwie
Tut mir leid, noch einmal: Quark! Ich hab die "CREATE TABLE" im Zusammenhang mit MySQL Direct auch verwendet.

Gibt verschiedene Ursachen. Angefangen bei vergessener Auswahl einer DB am Server, weiter über fehlende Rechte, wie Bernhard schon schrieb, bis hin zu anderen möglichen Ursachen.

Was genau kann man bei Dir nicht sagen, aber besser wäre es bei Dir noch einmal alles zu überprüfen. Ein nicht implementiertes "CREATE TABLE" bei MySQL Direct ist auf jeden Fall NICHT das Problem.
  Mit Zitat antworten Zitat
christian_r
(Gast)

n/a Beiträge
 
#9

Re: MYSQL Direct --> Tabelle erstellen

  Alt 6. Mai 2008, 19:45
Zitat von Logan:
Die Methode hätten die Entwickler auch anders benennen können ...
Wieso? CREATE TABLE ist doch eine MySQL-native Query? Eine Query ist und bleibt eine Query und sollte deshalb besser auch weiterhin so heißen.
  Mit Zitat antworten Zitat
Benutzerbild von Deltachaos
Deltachaos

Registriert seit: 20. Feb 2008
Ort: Berlin
195 Beiträge
 
Delphi 7 Personal
 
#10

Re: MYSQL Direct --> Tabelle erstellen

  Alt 7. Mai 2008, 18:35
Zitat von DeddyH:
Naja, der CREATE TABLE-Befehl fehlt da irgendwie
Oh beim tippen vergessen
nochmal:

Delphi-Quellcode:
var ex: boolean;
begin
  form1.FMysql.query('CREATE TABLE Tabelle1(Spalte1 datentyp, Spalte2 datentyp, ...)', true, ex);
{
  Bsp.
    CREATE TABLE customer
    (First_Name char(50),
    Last_Name char(50),
    Address char(50),
    City char(50),
    Country char(25),
    Birth_Date date) 
näheres dazu [url=http://sql.1keydata.com/de/sql-create-table.php]hier[/url]
}

  if ex
  then
    showmessage('Befehl Ausgefürt')
  else
    showmessage('FEHLER: ' + FMysql.LastError); //MySQL Fehlermeldung ausgeben
end;
Maximilian Ruta
  Mit Zitat antworten Zitat
Antwort Antwort


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 23:35 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