AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Neue Datenbank erstellen
Thema durchsuchen
Ansicht
Themen-Optionen

Neue Datenbank erstellen

Ein Thema von Aenogym · begonnen am 28. Feb 2006 · letzter Beitrag vom 28. Feb 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Aenogym
Aenogym

Registriert seit: 7. Mär 2004
Ort: Schwerin
1.089 Beiträge
 
Delphi 7 Enterprise
 
#1

Neue Datenbank erstellen

  Alt 28. Feb 2006, 10:12
Datenbank: MySQL • Version: 5.0 • Zugriff über: BDE über MySQL-ODBC-Treiber
hi leute,

ich habe hier ein kniffliges problem

ich benutze TDatabase und TQuery, um über den MySQL-ODBC-Treiber mit meiner datenbank zu kommunizieren. damit das klappt, muss man natürlich in den ODBC-Datenquellen den Treiber einrichten und ihm auch schon einen Datenbanknamen nennen.

mein programm muss jetzt allerdings eine funktion bereitstellen, die auf dem bekannten MySQL-server eine neue datenbank erstellt und in zukunft auf diese verbindet.
da der benutzer meines programms anfangs aber noch garkeine datenbank auf dem server hat, diese nicht manuell einrichten kann und auch den ODBC-treiber nicht unbedingt manuell enrichten soll, stehe ich vor einem großen problem

wie würdet ihr das lösen?

danke,
aeno
Steffen Rieke
Was nicht buzzt, wird buzzend gemacht!
http://blog.base-records.de
http://www.base-records.de
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

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

Re: Neue Datenbank erstellen

  Alt 28. Feb 2006, 10:15
Zitat von Aenogym:
wie würdet ihr das lösen?
BDE wegschmeißen und native Zugriffskomponenten nehmen die nicht auf ODBC-Datenbquellen angewiesen sind.

Du wirst auch noch viele andere Vorteile haben:

- Keine Installation von MyODBC bzw. u.U. aktuelle ODBC-Version
- Keine Einrichtung von ODBC
- Keine BDE mit ihrer nötigen Installation und ihren vielen Fehlern
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Aenogym
Aenogym

Registriert seit: 7. Mär 2004
Ort: Schwerin
1.089 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Neue Datenbank erstellen

  Alt 28. Feb 2006, 10:23
daran dachte ich auch schon. und ich würde es mir auch wünschen.
aber da das programm mit seinen knapp 40.000 zeilen (laut compilerfortschritt) vollgepackt mit BDE-code ist und ich nur noch bis freitag zeit habe, sah ich das als letzte möglichkeit
(zu meiner verteidigung: ich hab das programm nur übernommen - die entscheidung zur BDE hat jemand anders getroffen -.-)

danke trotzdem, dann werd ich mich wohl reinhängen müssen mit dem abändern...

aeno

PS: habe gelesen, dass ZEOS gut sein soll. ist es sehr verschieden von der BDE-arbeitsweise oder kann ich meinen code relativ leicht abändern?
Steffen Rieke
Was nicht buzzt, wird buzzend gemacht!
http://blog.base-records.de
http://www.base-records.de
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Neue Datenbank erstellen

  Alt 28. Feb 2006, 10:28
Zitat von Aenogym:
... und ich nur noch bis freitag zeit habe, sah ich das als letzte möglichkeit
(zu meiner verteidigung: ich hab das programm nur übernommen - die entscheidung zur BDE hat jemand anders getroffen -.-)
Ok. Du bist entschuldigt. Aber es ist trotzdem besser früher als später mit der Umstellung zu beginnen.

Zitat von Aenogym:
PS: habe gelesen, dass ZEOS gut sein soll. ist es sehr verschieden von der BDE-arbeitsweise oder kann ich meinen code relativ leicht abändern?
Ist eine alternative. Weiß jedoch nicht wie gut die schon mit der neuen Passwortverschlüsselung von MySQL-Versionen > 4.1 zurechtkommen ...
Sonst ist es relative ähnlich der BDE-Programmierung (Sind eigentlich fast alle auf TDataset-Basierenten Komponenten):
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#5

Re: Neue Datenbank erstellen

  Alt 28. Feb 2006, 10:44
Ich verwende MSSQL und beschreibe dir mal 2 Varianten, wie man es dort lösen kann.
Ebentuell findest du eine angepasste Lösung für MySQL.


Weg 1: DDL Script
-------------------

Baue die ein DDL Script (Textdatei), in der du die Datenbank, Tabelle, Views usw. definierst

SQL-Code:
CREATE DATABASE [Test]
GO
USE [Test]
CREATE TABLE [Testtable1] .... bla
Das Script kann auf dem MSSQL mit OSQL -S DerSqlServer -E -i MeinScript.sql ausgeführt werden.
Das kannst du über ein einfaches ShellExecute realisieren.
Bei MySQL gibt es sicher ein Äquivalent zur osql.exe.

Weg 2: Backup
-------------
Erstelle ein Backup (Dump) deiner Datenbank.
Bei MSSQL kannst du das Backup unter einem anderen DB-Namen wiederherstellen.

Das kann man auch mit einem Script Automatisieren..

SQL-Code:
RESTORE DATABASE [<NeueDB>]
FROM
  DISK = '<Backup-Datei>'
WITH
  FILE = 1,
  NOREWIND,
  NOUNLOAD
GO

Schöne Grüße,
Jens
  Mit Zitat antworten Zitat
Benutzerbild von Aenogym
Aenogym

Registriert seit: 7. Mär 2004
Ort: Schwerin
1.089 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Neue Datenbank erstellen

  Alt 28. Feb 2006, 10:55
hi jens,

danke für deine antwort. an so etwas habe ich auch schon gedacht. problem an der sache ist nur, dass ich keinen direkten zugriff auf den server-rechner habe (also kann ich die DDL-datei schonmal nicht ausführen lassen).
und das mit dme datenbank-dump würde auch nicht klappen, da ich momentan nur dann eine verbindung zum mysql-server aufbauen kann, wenn bereits eine datenbank besteht.

ich denke, dass ich besser ohne BDE/ODBC fahre, wie bernhard es schon gesagt hat.
jetzt installiere ich erstmal schnell zeos und versuche, das programm umzustricken.

steffen
Steffen Rieke
Was nicht buzzt, wird buzzend gemacht!
http://blog.base-records.de
http://www.base-records.de
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.640 Beiträge
 
#7

Re: Neue Datenbank erstellen

  Alt 28. Feb 2006, 14:45
Zitat von Aenogym:
ich benutze TDatabase und TQuery, um über den MySQL-ODBC-Treiber mit meiner datenbank zu kommunizieren. damit das klappt, muss man natürlich in den ODBC-Datenquellen den Treiber einrichten und ihm auch schon einen Datenbanknamen nennen.

mein programm muss jetzt allerdings eine funktion bereitstellen, die auf dem bekannten MySQL-server eine neue datenbank erstellt und in zukunft auf diese verbindet.
Mit den libmysql.dll - Wrappern von hier kannst Du, wenn Du die libmysql.dll mitlieferst, eine native Verbindung zur Datenbank herstellen. Hier kannst Du dann auch direkt die nötige Datenbank anlegen. Diese trägst Du dann in den ODBC-Eintrag ein und der Rest läuft wie gehabt.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.143 Beiträge
 
Delphi 10.3 Rio
 
#8

Re: Neue Datenbank erstellen

  Alt 28. Feb 2006, 18:00
Zitat von Bernhard Geyer:
BDE wegschmeißen und native Zugriffskomponenten nehmen die nicht auf ODBC-Datenbquellen angewiesen sind.

Du wirst auch noch viele andere Vorteile haben:

- Keine Installation von MyODBC bzw. u.U. aktuelle ODBC-Version
- Keine Einrichtung von ODBC
- Keine BDE mit ihrer nötigen Installation und ihren vielen Fehlern
Das wäre welche?

dbExpress SQLConnection?
(wo muss den hier die LIBMYSQL.Dll liegen? Die findert diese Komponente bei mir nicht, obwohl die DLL sowohl
in D6/bin als auch Im Windows\System32 liegt!

oder bibt es eine Möglichkeit über ADO?

Welche Componente ist sowohl in D6,D7,D2005,D2006,D2007??? Enthalten?

Frank
  Mit Zitat antworten Zitat
marsupilami79

Registriert seit: 19. Jul 2004
17 Beiträge
 
Delphi 12 Athens
 
#9

Re: Neue Datenbank erstellen

  Alt 28. Feb 2006, 18:41
Hallo,

hoffe mal, ich mach mich jetzt mit meinen Vorschlägen nicht gleich völlig zum Drops.

Zitat von Aenogym:
und das mit dme datenbank-dump würde auch nicht klappen, da ich momentan nur dann eine verbindung zum mysql-server aufbauen kann, wenn bereits eine datenbank besteht.
Nuja -> Aber existiert nicht auf jedem mysql-Server die Datenbank mysql? Da verwaltet der doch Zugriffsrechte usw? Mit der müßtest du dich doch verbinden können.

Zitat von Aenogym:
problem an der sache ist nur, dass ich keinen direkten zugriff auf den server-rechner habe (also kann ich die DDL-datei schonmal nicht ausführen lassen).
Könntest du die DDL-Statements nicht z.B. aus einer Textdatei in eine Query laden und die Query ausführen?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: Neue Datenbank erstellen

  Alt 28. Feb 2006, 19:33
Zitat von Mavarik:
Das wäre welche?
Ich empfehle MyDAC

Zitat von Mavarik:
dbExpress SQLConnection?
(wo muss den hier die LIBMYSQL.Dll liegen? Die findert diese Komponente bei mir nicht, obwohl die DLL sowohl
in D6/bin als auch Im Windows\System32 liegt!
Würde ich auch nicht empfehlen. Selbst unter D2006 werden nur passende Treiber bis MySQL 4.0 mitgeliefert. Und du mußt einiges an der Anwendung für dbExpress umbauen.

Zitat von Mavarik:
oder bibt es eine Möglichkeit über ADO?
Gehen schon, aber empfehle ich auch nicht. Wieder zu viel zum installieren.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 21:26 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