![]() |
MySQL mit Delphi
Liste der Anhänge anzeigen (Anzahl: 2)
MySQL mit Delphi
MySQL-Datenbanken mit Delphi ohne Fremdkomponenten Homepage: ![]() |
Re: MySQL mit Delphi
Hi,
erstma' super geschrieben. Werd' ich am Wochenende alles mal ausprobieren, da ich schon lange nach einer Möglichkeit gesucht habe mit einer Personal-Version mit Datenbanken zu arbeiten. Was ich'n bißchen blöd finde ist, dass der Text in der pdf-Datei so schwache Konturen hat (oder ist das gräulich?), so dass es etwas schwer zu lesen ist und ich stark reinzoomen muss. Gruß Calculon -- |
Re: MySQL mit Delphi
Hi,
das stimmt. Die eingestellte Schrift ist nicht so toll, sieht aus, als wäre sie ein bisschen transparent. |
Re: MySQL mit Delphi
tja .. mal sehen ob's geht :???:
|
Re: MySQL mit Delphi
Moin Michael,
ich habe es gerade grob überflogen und werde es auf jedenfall mal Schritt für Schritt durchgehen. Wie es der Zufall so will, arbeite ich derzeit an einem Programm welches auf eine Online-MySQL-Datenbank zugreift. Bisher habe ich nur das Tutorial von dsdt.info. Was mir vorab aufgefallen ist, und mir sehr gut gefällt, ist das du auch eine Einleitung in die Betriebname des Servers selbst gibst. Was die Schrift angeht, so schließe ich mich meinen Vorrednern an. Ist das grau gewollt, oder ein effekt der PDF-Druckers ? Viele Grüße Christian |
Re: MySQL mit Delphi
Es ist die Standard-Latex-Schrift, die voreingestellt ist. Im Druck sieht sie sauber aus. Allerdings mus sich euch Recht geben, hier zu Hause mit dem TFT-Monitor sieht sie etwas transparent aus. Im Büro mit dem Röhrenmonitor sah sie besser aus.
|
Re: MySQL mit Delphi
Hallo zusammen,
Ich hätte da als absoluter Datenbankneuling eine Frage. Läßt sich mit den beschriebenen Mitteln auch ein Bild in die Datenbank stecken(jpg). Ein Hinweis dazu fehlt in dienem Skript und das wäre für mich sehr wichtig. Muß mich Arbeitstechnisch in Datenbanken einarbeiten und sollte wenn möglich auch Bilder mit rein packen. Gruß Matthias |
Re: MySQL mit Delphi
MySQL müsste dazu auch den passenden Datentyp kennen. Allerdings sollte man es vermeiden Bilder direkt in der Datenbank zu speichern, da sie so sehr schnell sehr groß wird und die Performance darunter sehr leidet. Am besten nur den Pfad abspeichern.
|
Re: MySQL mit Delphi
Hallo Lucky,
Danke für die schnelle Antwort, Also folgendes Problem: Wir sollen umsetzen: Papierlose Abteilung/Fertigung Dazu sollen die derzeitigen Datenblätter (~1700Stück) in eine Datenbank. Bei jedem Datenblatt ist auch ein Bildchen. Momentan liegt alles auf einem Netzlaufwerk als Worddokumente und die Bilder werden da auch abgelegt wo das jeweilige Datenblatt ist. Nachdem ich garantieren muss das auch das richtige Bild mit aufgerufen wird kommt ein Link alleine nicht in Frage, da ich sonst ja bei geändertem Link nicht sicherstellen kann das richtige Bild zu finden. Das es keinen Sinn macht alle 1700 Dokumente wie bisher in einzeldokumente zu fassen ist klar, sonst könnte man es auch lassen wies jetzt ist. Aber die Bilder sollten halt auch zentral abgelegt und per Kennung abrufbar sein. Gibts alternativen ? Gruß Matthias |
Re: MySQL mit Delphi
Zitat:
Falls du auch fertige SW einsetzen kannst die auch einiges kosten dürfen und es sich um die Datenblätter um Stücklisten von Baugruppen handelt: Da gibts schon was fertiges. |
Re: MySQL mit Delphi
Kompliment und Frage
Also als erstes ein Kompliment. Habe es kurz angesehen und gleich geschnallt wie man Sucht und Filtert in der DB. So müssen Tutorials sein. Frage: Funktioniert das auch mit Firebird? Vielen Dank für die Antwort. Peter |
Re: MySQL mit Delphi
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo, ich bin grade dabei mich in Datenbanken einzuarbeiten.
Auf grund deines Turoirals habe ich mir MySQL runtergeladen und auch installiert (Dienst läuft laut WinDoof) Zudem habe ich mit den EMS SQL Manager 2007 runtergeladen und gestartet. Wenn ich nun aber eine neue daten bank anlegen will kommt eine fehler meldung. Edit: Nun taucht die DB links auf ,wenn ich mich aber verbinden will kommt nen fehler :"stellen sie sicher das der Dienst läuft und das programm richtig instaliert wurde". Per MySQL commend line client kann ich auf den server connecten Sry ich weiss das passt ihr eig net rein, aber ich bin echt am verzweiflen... Fehler siehe Bilder Danke schon mal. PS: VLl kennt ja jemand ein ähnliches programm welches nicht in 30 Tagen ausläuft... |
Re: MySQL mit Delphi
Hallo Thorben,
hast du das XAMPP Control Panel mal aufgerufen? Ich habe zum Beispiel bei mir den mySQL Dienst nicht installiert, sondern nur gestartet. Wenn ich im Firefox dann localhost eingebe, komme ich auf den XAMPP Tools rauf und dort kann ich das phpMyAdmin öffnen. Mit dem EMS SQL Manager komme ich drauf. Allerdings ist der Port bei mir auf 3306 eingestellt. Vielleicht ist da noch ein kleiner "Fehler". |
Re: MySQL mit Delphi
Vielen dank für deine mühe, nur leider versteh ich immer noch net was ich machen muss. *schäm*
Wenn ich im FireFox Localhost eingeben sagt der nur seite net gefunden :D Das mit dem Port ist bei mir auch so, auf welchen muss der den stehen? Sry für die doofen fragen, kenn mich nur leider gar net aus wie ich Datenbanken einrichte, ich weiss nur wie ich so benutze. Wenn jemand zusätzlich ein Tutorial kennt wo erklärt ist wie man eine Datenbank einrichtet wäre ich ihm sehr dankbar Thorben EDIT: ich hab mir das XAMPP Control Panel runtergeladen und auch instaliert. Laut dem Panel läuft der MySQL server. EDIT2: Ok mit dem XAMPP Control Panel neu gestartet und nun geht es, danke dir :D |
Re: MySQL mit Delphi
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich bin grade dabei mich durch das Tut zu arbeiten, doch anscheinend habe ich schon bei der Installation von MySQL Fehler gemacht. Wenn ich nämlich das Beispielprojet compiliere und die exe starte kann ich keine DB anlegen. Ich bekomme dann eine Fehlermeldung, siehe Anhang. Der Fehler hängt ja anscheinend mit der Datei 'libmysql.dll' zusammen. Wohin genau muss ich diese denn kopieren, damit das Beispielprojekt funktioniert? Ich hab sie z.Z. in: C:\WINDOWS Ich hoffe ihr versteht mein Problem. herkulesamstart |
Re: MySQL mit Delphi
Kopier sie in Anwendungsverzeichnis.
|
Re: MySQL mit Delphi
Sry :oops: aber ich versteh nicht ganz was du mit Anwendunsordner meinst..
Etwa den ordner in dem auch die Bspprj.exe ist? |
Re: MySQL mit Delphi
Genau den, und prüfe mal, ob das die DLL ist, die auch zu Deiner MySQL-Version passt.
|
Re: MySQL mit Delphi
Mhh.. wie prüf ich das denn?
Also ich benutze MySQL 4.1 so wie in dem Tutorial beschrieben... habe extra keine neuere bzw andere Version genommen. Und die .dll wird ja sogar schon in Luckies zip mitgeliefert. Also ich hab das Ding einfach entzippt und dann ist die dll da schon mit im Verzeichnis drin. Aber mit der dll die von MySQL mitgeliefert wird klappst auhc nicht. |
Re: MySQL mit Delphi
Luckie,
Fehlerteufel war am Werk: Seite 10: Zitat:
|
Re: MySQL mit Delphi
Liste der Anhänge anzeigen (Anzahl: 2)
Also ich versuche mal mein Problem etwas umfassender darzustellen... :|
Dazu erläutere ich auch mein Vorgehen bei der Installation. 1. Ich habe das Setup von MySQL Server 4.1 heruntergeladen 2. Ich installiere den MySQl Server. Einstellungen: Setup Type: Complete Destination Folder: C:\Programme\MySQL\MySQL Server 4.1\ 3. Ich überspringe die Regestrierung bei MySQl.com. Installation abgeschlossen. 4. Der Configuration Wizard erscheint Einstellungen: Detailed Config. statt Standadrd Config --> Developer Machine --> Multifunctional DB --> approximate num of concurrent connections. Manual Setting = 15 --> TCP/IP? Yes, Port: 3306 --> Standart Zeichensatz -->Include Bin Directory in Windows PATH? Yes. -->Security Settings? No! --> no password Configuration executed: Config File created = C:\Programme\MySQL\MySQL Server 4.1\my.ini Service restarted succesfully. 5. Ich installiere die Server-Anwendung mysqld-nt.exe mit der Konsole
Delphi-Quellcode:
6. Ich versuche auch in der Konsole mysql.exe zu starten. Mir wird allerdings der Zugang unter dem Error 1045 verweigert. Dann piepts einmal schön und nix.
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp. C:\>mysqld-nt --install Service successfully installed. C:\>
Delphi-Quellcode:
Warum wird mir hier schon der Zugang zum MySQl Server verweigert oder ist die mysql.exe unerheblich für mich wenn ich schon die mysqld-nt.exe installiert habe?
C:\>mysql
ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: NO) C:\> 7. Ich probier trotzdem das Demoprj von Luckie unter Delphi zu starten. Die libmysql.dll befindet sich auch ganz sicher im Anwendungsverzeichnis(Ist ja auch schon in der zip von Luckie dabei)! Dann bekomme ich folgenden Error wenn ich auf "DB Anlegen" drücke, siehe auch Anhang.
Delphi-Quellcode:
8. Ich probier mit dem EMS SQl Manager 2007 für MYSQl eine DB zu erstellen. Dabei bekomme ich dann etwa den selben Fehler wie zuvor in der Konsole, siehe Anhang. Nur der User heisst hier 'root' statt 'ODBC'
---------------------------
Debugger Exception Notification --------------------------- Project AdressDBSQL.exe raised exception class EAccessViolation with message 'Access violation at address 100047CA in module 'libmysql.dll'. Read of address 00000358'. Process stopped. Use Step or Run to continue. --------------------------- OK Help --------------------------- Ich habe aber eine andere offene Frage: Was ist der "XAMPP Control Panel" bzw was macht dieser genau? Er wurde ja in der Diskussion erwähnt(Ich hab ihn mir schon heruntergeladen und ausprobiert). Ich hoffe Ihr könnt mir anhand der Infos weiterhelfen.. herkulesamstart |
Re: MySQL mit Delphi
Ich hab mein Problem jetzt lösen können.
Woran genau es jetzt liegt kann ich nur vermuten. Aber Wahrscheinlich liegt es an der MySQL Server Version oder ich hab bei der Installation mit dem Setup von MySQl Server 4.1 einen Fehler gemacht. Allerdings scheint der Fehler wohl schon häufiger aufgetreten zu sein und auch immer wie durch Geisterhand wieder behoben, wie in diesen beiden Fällen: 1. ![]() 2. ![]() Ich benutze jetzt jedenfall MySQL Server 5.0 und haben diesen Manuell installiert(Wie bei Luckie im Tutorial beschrieben) und nicht mit nem Setup wie bei 4.1. Trotzdem ein Danke an alle die mir geantwortet haben. herkulesamstart PS: macht es eigentlich einen Unterschied ob man die Pfade in der my.ini mit nem "/" oder "\" angibt? |
Re: MySQL mit Delphi
Hallo, ich habe da ein Problem mit dem DELETE, näheres siehe:
![]() Vielleicht kann mir da jemand helfen? :coder2: |
Re: MySQL mit Delphi
Ist die Ip alphanumerisch? Dann versuch es mal mit QuotedStr.
|
Re: MySQL mit Delphi
Zitat:
|
Re: MySQL mit Delphi
Ich wollte das Programm mal ausprobieren, aber wenn ich auf "Start" klicke gibt mir Delphi immer nur diese Fehlermeldung aus:
Zitat:
|
Re: MySQL mit Delphi
Eventuell gibt es unter Delphi2005 die besagte Datei nicht mehr.
|
Re: MySQL mit Delphi
Welche Version hast du denn, bzw. mit welcher Version klappt das denn?
|
Re: MySQL mit Delphi
Was ist denn
Zitat:
|
Re: MySQL mit Delphi
Also erstellt wurde die Demo damals mit Delphi 6 Personal.
|
Re: MySQL mit Delphi
Ich glaube nicht das das Programm für VCL.NET entwickelt wurde. Bitte beim Öffnen in D2005 das Projekt nicht nach VCL.NET wandeln lasssen.
|
Re: MySQL mit Delphi
Ah, ich habe das Problem gefunden. Wenn ich die Datein für WIN 32 öffne geht es, mit .NET geht es nicht...
|
Re: MySQL mit Delphi
Du hast übrigens nirgends beschrieben, welche Fehlermeldungen bei _connect wiedergegeben werden könnten.
Außerdem bleiben folgende Fragen offen:
MfG xZise |
AW: MySQL mit Delphi
Hallo ! :hi:
Was muß ich machen, damit das Beispiel aus dem Tutorial auch mit der neueren Version der Unit "mysql" ![]() Kann mir da jemand helfen ? Ich habe lange nichts mehr mit Delphi gemacht :pale:, benutze vor allem noch Delphi 5, mit dem diese Sachen mit geringfügigen Anpassungen zum Glück noch funktionsfähig sind. Schon mal jetzt Danke für die Mühe ! :smile2: |
AW: MySQL mit Delphi
Was funktioniert denn nicht?
Ehrlich gesagt, habe ich keine Lust mir ein MySQL und diese Unit zu besorgen und dann das Zusammenspiel zu analysieren. Und Zeit erst recht nicht Gruß K-H |
AW: MySQL mit Delphi
Zitat:
Beispiel: alte Unit
Code:
neue Unit
PMYSQL_FIELD = ^TMYSQL_FIELD;
TMYSQL_FIELD = record name: pChar; // Name of column table: pChar; // Table of column if column was a field def: pChar; // Default value (set by mysql_list_fields) _type: enum_field_types; // Type of field. Se mysql_com.h for types length: longword; // Width of column max_length: longword; // Max width of selected set flags: longword; // Div flags decimals: longword; // Number of decimals in field end;
Code:
Im Beispielprogramm ( AdressDBSQL ) wird z.B. "Cols[i] := Field.Name;" bemängelt und das ist bei der anderen Pointer-Deklaration kein Wunder. Kommentiere ich die Zeile aus, kommen zwar keine weiteren Fehlermeldungen, aber es funktioniert eben auch nichts.
TMYSQL_FIELD = TMYSQL_FIELD401;
PMYSQL_FIELD = Pointer; Zitat:
Die neue Unit ist zweifelsfrei erheblich besser, aber eben leider nicht kompatibel zur alten gehalten worden, obwohl sie auf dieser beruht. |
AW: MySQL mit Delphi
Probiere es mal mit
Delphi-Quellcode:
. Es liegt übrigens durchaus beim Fragesteller, alle Infos beizubringen, die zu seiner Problemlösung hilfreich sein könnten. Hier sind viele hilfsbereite Leute, und wenn meine Idee hier klappt, war es nichtmals nötig die genannte Unit jemals gesehen zu haben um das Problem zu lösen. Aber die Codefetzen waren dafür unverzichtbar. Bedenke immer: Dein Kopf ist dir ganz allein deiner, und überhaupt jemanden mit exakt den selben Problemen zu finden, die man selbst hat, ist eine Nadel-im-Heuhaufen-Aufgabe. Du tust dir selbst einen großen Gefallen, wenn du möglichst viele potenzielle Helfer erreichts, in dem du umfangreicher informierst. (Oftmals ist sogar das Eindampfen auf die relevanten Infos zu einer Frage schon genug, um sich selbst zu helfen.) Gewillte Helfer schräg anzufahren bringt dir herzlich wenig.
Cols[i] := TMYSQL_FIELD(Field).Name;
|
AW: MySQL mit Delphi
Hallo ! :hi:
Der Tipp funktioniert so nicht = "ungültige Typ-Umwandlung", ist aber doch schon erstaunlich nah dran, wie ich später sah, obwohl das nicht alles war. Die Fehlermeldung beim eigentlichen Quelltext an der Stelle ist übrigens = "Record, Objekt oder Klassentyp erforderlich". Es war keineswegs unhöflich, zu fragen, wieso sich jemand äußert, der nichts zum Thema beitragen kann, weil er die Sachlage nicht kennt und sich auch nicht einarbeiten will. Die wirkliche Fehlerquelle sitzt in der inkompatiblen Umgestaltung der erweiterten, neuen Unit. Und genau diese Infos hatte ich gegeben. Nach wie vor bin ich der Ansicht, daß es in manchen Fällen (so wie hier) wenig hilft, zu versuchen, an Symptomen rumzudoktern, ohne das Ganze zu kennen. Weil das alles nicht von mir stammt, war es darum völlig sachgerecht, die Quelle der neuen Unit (nebst Beispielen) zu nennen. Die alte mit Beispiel ist ja hier in diesem Thread erwähnt, der Bestandteil des Tutorials ganz genau dazu ist. Insofern ging ich davon aus, daß sich (falls überhaupt) genau solche Menschen dazu äussern, die auch damit arbeiten und wissen, wovon die Rede ist, und sich deshalb damit zurechtfinden oder eben jemand, der genügend Kenntnisse und Interesse hat, sich entsprechend ganz neu einzuarbeiten. Es war wirklich nicht böse gemeint, aber wenn das alles einfach wäre, hätte ich nicht gefragt.:oops: Ohne die alte Unit "MYSQL.PAS" (Papier-Ersparnis, weil sie kleiner als die neue ist) auszudrucken und mit der neuen zu vergleichen, hätte ich die Lösung selbst sicherlich auch nie gefunden. Es ging in diesem Fall also wirklich nicht ohne Durchsicht der Quellen, nicht mal mit Bildschirm-Direktvergleich. Und es war Glück, daß sich die Problemlösung letztlich als trivialer heraus stellte, als ich befürchtet hatte. Nun weiß ich also mehr und kann damit vielleicht selbst anderen helfen, die auch dieses Problem haben/hatten und nicht zu lösen wußten : Beim Vergleich der originalen Unit mit der neuen fiel mir zunächst auf, daß bei der neuen Unit eine Compiler-Anweisung {$DEFINE DONT_LOAD_DLL} existiert, die verhindert, daß im INITIALIZATION-Teil die "libmysql.dll" (im Gegensatz zum Original) automatisch geladen wird. Im Beispiel "AdressDBSQL" muß dies dann also manuell innerhalb von "Unit1" gleich zu Beginn als Erstes in "Formcreate" erfolgen = "libmysql_load(nil);" Dann muß die kritische Zeile zu "Cols[i] := TMYSQL_FIELD(field^).name; //Field.Name;" geändert werden, und das Beispielprog funktioniert daraufhin gleichermaßen mit alter oder neuer Unit "MYSQL.PAS" ! |
AW: MySQL mit Delphi
Einer der Ziele bei der neuen mysql.pas war es, zu erreichen, dass die Schnittstelle weitgehend unabhängig von der Version der zugrunde liegenden libmysql.dll wird. Das genau ist nicht gegeben, wenn man direkt mit den Zeigern arbeitet. Leider wurden die internen Strukturen lange Zeit über die verschieden Versionen verändert (das ist der Kern des Problems, weshalb die neue mysql.pas nur begrenzt kompatible ist).
Gleichzeitig gab für bestimmte Werte keine entsprechenden Abfragefunktionen. Erst bei den neuen Versionen (der DLL) hat man anscheinend erkannt, dass das ständige Ändern der internen Strukturen bei statisch gelinkten Bibliotheken kein Problem ist, wohl aber bei dynamisch geladenen Bibliotheken, wie z.B. DLLs. Aus diesem Grund gibt es bei der mysql.pas zusätzliche Funktionen, die den Zugriff auf bestimmte Parameter von der internen Struktur abschirmt. Dazu gehören: mysql_field_name mysql_field_tablename mysql_field_default mysql_field_type mysql_field_flag UpdateField Wie gesagt, diese Funktionen können unabhängig von der verwendeten DLL verwandt werden und deshalb sollten diese Funktionen bevorzugt eingesetzt werden. "Richtig" im Sinne der neuen mysql.pas wäre also Cols[i] := mysql_field_name(field); |
AW: MySQL mit Delphi
Vielen Dank für die Erläuterungen ! :hi:
Endlich mal jemand, der sich auskennt. :thumb: Die Zuweisung Cols[i] := mysql_field_name(field); hatte ich nach einer Weile auch rausgefunden, mich dann aber doch für die von mir genannte Möglichkeit entschieden, weil die gleichermaßen mit alter wie neuer Unit funktioniert. Wer nur noch die neue Unit benutzen will, ist natürlich mit der "richtigen" Zuweisung besser bedient. Ich bin noch am Testen und benutze erstmal noch die eine, mal die andere Unit-Version. Mir schwebt vor, weitere Beispielanwendungen zu entwickeln, z.B. Transfer aus DBF-Datenbanken mit Zugriff über die Komponente TDBF. Das soll dann auch gleichermaßen mit alter wie neuer Unit "MYSQL" funktionieren. Ach, Du bist ja derjenige, der die Unit weiter entwickelt hat, wie ich gerade auf der Suche nach weiteren Beiträgen von Dir feststellte. Da bin ich ja glücklicherweise gleich an die beste Quelle überhaupt geraten, prima ! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:09 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-2025 by Thomas Breitkreuz