![]() |
Datenbank-Einsteiger-Tutorial für mySQL-Datenbanken
Ich habe mich in den letzten Tagen etwas mit der Datenbankprogrammierung mit dem mySQL-DatenbankServer beschäftigt. Einen ersten Einstieg habe ich durch das
![]() Aus dem Inhalt:
Link zum Tutorial: ![]() |
Re: Datenbank-Einsteiger-Tutorial für mySQL-Datenbanken
Kleinen Bug im der Demo Anwendung behoben. Eine Datenbank sollte sich jetzt auch aus dem Programm raus erzeugen lassen.
|
Re: Datenbank-Einsteiger-Tutorial für mySQL-Datenbanken
Zu dem Tutorial ergaben sich wohl noch ein paar Fragen. Ich habe hier mal die entsprechenden Threads gesammelt:
![]() |
Re: Datenbank-Einsteiger-Tutorial für mySQL-Datenbanken
ich habe mir den mysql server runtergealden und alles so gemacht wie du es beschrieben hast jedoch bekomme ich beim "Importieren" nur dise fehlermeldung:
--------------------------- Adressdbsql --------------------------- Zugriffsverletzung bei Adresse 00E64CD7 in Modul 'libmysql.dll'. Lesen von Adresse 00000000. --------------------------- OK --------------------------- und warum muss die anwendung ins internet gehen ? die libmysql.dll befindet sich im c:\windows\systen32 verzeichnis |
Re: Datenbank-Einsteiger-Tutorial für mySQL-Datenbanken
Meinst du meine Demo? Die geht bestimmt nicht ins Internet, kannst dir ja den Code angucken und selber kompilieren.
Hat du denn das schon mal debugt? An welcher Stelle kommt denn die AV? |
Re: Datenbank-Einsteiger-Tutorial für mySQL-Datenbanken
das habe ich gemacht. und deine demo möchte ins internet gehen warum weiß ich nicht bzw. meine Firewall schlägt alarm... darum...
aber mal eine andere frage warum kommt die fehlemeldung ??? kannst du mir evlt. den genauen link geben von den was du runtergeladen hast ? |
Re: Datenbank-Einsteiger-Tutorial für mySQL-Datenbanken
Der MySQL-Server läuft doch lokal und nutzt doch sicherlich einen Port oder nicht?
Und genau deswegen schlägt wahrscheinlich deine Firewall Alarm, weil die alle Port-Zugriffe erstmal blockt. Bei der Warnung müsste doch auch stehen auf welchen Port und ob es lokal ist oder eine Internet-Adresse also die IP-Adresse. |
Re: Datenbank-Einsteiger-Tutorial für mySQL-Datenbanken
das wird es sein... ich habe jetzt mal mit MySql Query Browser rumgespielt hatte ein tutorial von delphi Forum gefunden das ist nicht schlecht ich würde sage mysql läuft bei mir aber leider nicht das beispiel programm von Luckie..... :(
|
Re: Datenbank-Einsteiger-Tutorial für mySQL-Datenbanken
Bei mir geht obiger Link nicht (404). Die Endung muss .php und nicht .shtml lauten.
|
Re: Datenbank-Einsteiger-Tutorial für mySQL-Datenbanken
Der port wird anscheind von meiner firewall auch nicht gespert weil ich hatte die firwall deaktivirt und da kam die gleiche fehlermeldung...
|
Re: Datenbank-Einsteiger-Tutorial für mySQL-Datenbanken
Code:
Homepage von Michael Puff
404 Not Found File or Directory not found. [url]http://www.michael-puff.de[/url] [url]http://programme.michael-puff.de[/url] Apache/1.3.37 Server at [url]www.luckie-online.de[/url] Port 80 |
Re: Datenbank-Einsteiger-Tutorial für mySQL-Datenbanken
ich glaube das die units die ich da runtergealden habe für delhpi warscheinlich zu alt sind... du gibts ja diesen link an:
![]() dort gibt es die units aber nur für die version: 3.23.49 aber es gibt ja inzwischen die 4.... version von mySql bzw. die 5.... version.. könnte es dran liegen und wenn kennt eine eine frei enhältliche version für DP7 PE ? |
Re: Datenbank-Einsteiger-Tutorial für mySQL-Datenbanken
ich konnte eine verbinung herstellen nach langen hin und her... uns zwar mit dem "Tutorial von Chewie "
|
Re: Datenbank-Einsteiger-Tutorial für mySQL-Datenbanken
Und was macht der anderes, dass es klappt?
|
Re: Datenbank-Einsteiger-Tutorial für mySQL-Datenbanken
Liste der Anhänge anzeigen (Anzahl: 1)
der nutzt glaube ich die DLL nicht bzw. bindet die richtig ein ich weiß es leider nicht genau...
ich hänge es mal als anhang dran die tabblen werden noch nicht gefüllt aber ich kann mich anmelden... an den mySql server ! |
Re: Datenbank-Einsteiger-Tutorial für mySQL-Datenbanken
Geht wunderbar. die mysql.pas muss im Projektverzeichnis liegen und natürlich die libmysql.dll im Exe Verzeichnis. Das Passort ist übrigens standardmäßig leer.
|
Re: Datenbank-Einsteiger-Tutorial für mySQL-Datenbanken
geht immer noch nicht und es liegt nicht am tutrial bei den andren tutorial geht es auch nicht...
Zitat:
|
Re: Datenbank-Einsteiger-Tutorial für mySQL-Datenbanken
ich habe herrausgefunden das der fehler hier lieg:
Delphi-Quellcode:
wenn das weiter hilft... ich weiß einfach nicht mehr weiter.... warscheinlich muss ich das projekt MySql + Delphi aufgeben weil es einfach nicht funktniert.... ich dachte mir schon das es schwer werden wird aber das es schon beim hinzufügen nicht klappt... ich habe mir MySQL Query Browser runtergeladen und damit rumgespielt damit geht es... d.h. es liegt an delhpi bzw. an dieser DLL.... warum ?
function Insert(Kontakt: TKontakt): Boolean;
var query: string; ErrorCode: Integer; begin ErrorCode := mysql_select_db(Descriptor, DBNAME); |
Re: Datenbank-Einsteiger-Tutorial für mySQL-Datenbanken
ich habe gesehen das es hier schon fehler gibt:
Delphi-Quellcode:
ich kann nochnicht mal auf Descriptor zugreifen....
procedure TForm1.FormPaint(Sender: TObject);
var Cols: TCols; Rows: TRows; query: string; i: Integer; s: string; begin if FirstTime then begin FirstTime := False; Form1.Refresh; StringGrid1.Refresh; Descriptor := mysql_init(nil); log('Mit Datenbankserver verbinden'); Descriptor := Connect(Descriptor, PChar(HOST), Pchar(USER), Pchar(PW), PChar(''), PORT); ShowMessage(mysql_error( Descriptor)); |
Re: Datenbank-Einsteiger-Tutorial für mySQL-Datenbanken
Der Fehler wäre relativ einfach zu beheben gewesen:
Delphi-Quellcode:
Wenn man dann die DB und die Tabelle erzeugt, geht alles wunderbar.
if ExecQuery(DBNAME, query, Cols, Rows) then // <- if eingefügt
begin for i := 0 to length(Cols) - 1 do begin s := s + Cols[i]; end; for i := 0 to length(Rows[0]) - 1 do begin s := s + ' ' + Rows[0, i]; end; end; |
Re: Datenbank-Einsteiger-Tutorial für mySQL-Datenbanken
Nochmal eine kleine Sache zu den Versionen:
Die Header-Datei auf der Fichtner-Homepage ist alt, das ist richtig. Aber die Client-DLLs der heutigen Server-Versionen haben noch außen hin noch die gleiche Schnittstelle, man kann mit der Header-Übersezung vielleicht nicht alle Funktionalitäten benutzen, aber prinzipiell gehts. Allerdings hat sich intern glaub ich was geändert, ein Zugriff mit einer Client-DLL der Version 3.x auf einen 4-Server ist soweit ich weiß nicht mehr möglich. Also um da Probleme zu vermeiden, sollte man sichergehen, dass die DLL am besten im gleichen Verzeichnis liegt und der gleichen Version wie der Server, auf den zugegriffen wird, entspringt. |
Re: Datenbank-Einsteiger-Tutorial für mySQL-Datenbanken
habe ich versucht geht auch nicht.. das beispiel von luckie hatte ich getestet da kommen die fehler.... ich werde glaube ich nocheinmal alles runterhauen was ich von mySql habe und es nocheinmal installieren evlt. könntes du/ihr mir dazu eine kleine anleitung geben.... weil ich hatte mich an die anleitung von Luckie gehalten und anscheiend habe ich die wohl falsch verstanden.
|
Re: Datenbank-Einsteiger-Tutorial für mySQL-Datenbanken
so ich habe es nocheinmal neuinstalliert es geht immer noch nicht...
ich habe mir die datei: mysql-noinstall-4.1.21-win32.zip runtergeladnen und entpackt dann den die anweisung wie von Luckie beschrieben im CMD ausgeführt... dann habe ich nacheinader alle dlls die ich gefunden habe ins system32 verzeichnis verschoben und es hat mit keiner gekalpt ich hatte sogar die firewall ausgeschlatet für diesen test.... ich weiß nicht warum das nicht geht... ich hoffe einer von euch kann mir noch weiter helfen währe für jeden tipp dankar... und wenn es nicht geht dann geht das halt nicht..... |
Re: Datenbank-Einsteiger-Tutorial für mySQL-Datenbanken
Läuft denn die Datenbank überhaupt sprich klappt der Zugriff mit einem anderen Programm?
Und sind die Versionen des Servers und der DLL wirklich identisch? Wenn ja, häng mal dein ganzes Projekt als Anhang an. |
Re: Datenbank-Einsteiger-Tutorial für mySQL-Datenbanken
Liste der Anhänge anzeigen (Anzahl: 1)
kennst du das programm "MySQL Query Browser" ? da habe ich mySql befehle eingeben und es hat geklappt problemlos und darum glaube ich einfach das es um die delphi Header liegen muss.
und was die versionen angeht da bin ich mir auch zimlich sicher das die gleich sind oder meinst du jetzt die version der unit und der libmySql.dll ? die sind auch gleich..... so jetzt habe ich gesehen der server wahr nicht gestartet und bei dem programm von luckie im log steht jetzt folgendes: Zitat:
Zitat:
soweit wahr ich heute noch nicht bis jetzt *G* |
Re: Datenbank-Einsteiger-Tutorial für mySQL-Datenbanken
Du führst am Anfang einen Query in der Datenbank "AdressDB" aus, prüfst aber nicht, ob die Datenbank überhaupt existiert.
Tut sie das nicht, kommt der von dir genannte Fehler. Existiert die Datenbank aber, dann bekomm ich keine Exception. |
Re: Datenbank-Einsteiger-Tutorial für mySQL-Datenbanken
Jupp. Das ist es. Es ist eben nur ein Tutorial.
|
Re: Datenbank-Einsteiger-Tutorial für mySQL-Datenbanken
ich dachte im beispiel programm würde alles passieren also das mit dem erstellen der DB
ich habe den eindruck das ich auch noch tabbelen erstellen muss aber wie ? weil ich bekomme jetzt (warum weiß ich nicht, habe nichts gemacht) folgende fehlermeldung: Zitat:
|
Re: Datenbank-Einsteiger-Tutorial für mySQL-Datenbanken
jetzt hat es funktioniert der fehle ist folgender: zwei button hatten die falsche position darum habe ich die nicht gesehen:
btnCreateBD btnCreateTable da musst du die position anpassen oder wahr das absicht *G* ? |
Re: Datenbank-Einsteiger-Tutorial für mySQL-Datenbanken
Also ich sehe sie bei mir. :gruebel:
|
Re: Datenbank-Einsteiger-Tutorial für mySQL-Datenbanken
naja ich habe sie nicht gesehen.... wie denn auch sei jetzt geht es... eine frage noch:
wie kann ich die cvs datei als bin abspeichern oder bleibt das auch bei größern db als Assci ? |
Re: Datenbank-Einsteiger-Tutorial für mySQL-Datenbanken
hallo luckie,
da das tutorial ja für den laien aufgebaut ist stellt sich bereits in deiner sektion "was wir brauchen vorbereitung..." die frage nach der konfigurationsdatei "...ist es nötig noch eine Konfigurationsdatei im Windowsordner abzulegen, dies muss man eventuell von Hand machen" -- mysqld] basedir=C:/Programme/MySQL/MySQL Server 4.1/ datadir=C:/Programme/MySQL/MySQL Server 4.1/data/ [WinMySQLAdmin] Server=C:/Programme/MySQL/MySQL Server 4.1/bin/mysqld-nt.exe -- wo muss die datei hin, wie wird sie benannt usw. habe ich etwas übersehen? gruss andreas |
Re: Datenbank-Einsteiger-Tutorial für mySQL-Datenbanken
Hallo, ich habe das Totorial gelesen, und benutze diese Weise, mit der MySQLdatenbank zu verbinden. Ich habe nur ein kleines Problem damit. Manchmal, wenn ich etwas in der Datenbank machen will bekomme ich einen Fehler:
Lost connection to MySQL server during query Ich weiß, aber nicht in welechem Platz das Problem steckt, denn ich bekomme keine Nachricht vom Delphikomilator. Ich möchte, falls dieses Problem vorkommt, noch einmal mit der Datenbank verbinden. Kann mir jemand dabei helfen?? |
Re: Datenbank-Einsteiger-Tutorial für mySQL-Datenbanken
Könnte was mit der Netzwerkverbindung zu tun haben und wenige rmit deinem Datenbankziugriff. aber wenn du die Exception bekommst, verbinde dich doch einfach neu und führe den Query noch nmal aus.
|
Re: Datenbank-Einsteiger-Tutorial für mySQL-Datenbanken
Da liegt der Hund begraben. Ich bekomme keine Exception, sogar wenn ich das Programm im Delphi (durch F9) betätige. Ich bekommen nur diesen Fehler und ich weiß nicht in welchem Platz das Problem steckt.
|
AW: Datenbank-Einsteiger-Tutorial für mySQL-Datenbanken
hmm leider ist der link tot fürs tutorial
|
AW: Datenbank-Einsteiger-Tutorial für mySQL-Datenbanken
|
AW: Datenbank-Einsteiger-Tutorial für mySQL-Datenbanken
Ich habe das Tutorial (sehr gut, danke!) erfolgreich in ein kleines Testprogramm umgesetzt. Nun möchte ich eine Datei als Binärdaten speichern und bekomme es nicht hin.
Ich habe mit HeidiSQl ein Blobfeld in der Tabelle angelegt und schaffe es auch, bmp-Dateien reinzuschreiben, aber diese kommen nicht immer vollständig an. Ich tippe mal, dass es ein Problem mit nullterminierten Strings ist. Folgendermaßen bin ich vorgegangen und wäre für Tipps dankbar. Carsten
Code:
var
s: AnsiString; query: AnsiString; f: TFileStream; Fehler:longint; begin f := TFileStream.Create(FLink, fmOpenRead + fmShareDenyWrite); try SetLength(s, f.Size); f.ReadBuffer(Pointer(s)^, Length(s)); finally f.Free; end; query:='INSERT INTO dateien(typ,buffer) VALUES(''bmp'',' + QuotedStr(s) + ')'; if FDescriptor<>nil then begin Fehler:=mysql_select_db(FDescriptor, PChar(FDBName)); if Fehler = 0 then begin Fehler:=mysql_real_query(FDescriptor, PAnsiChar(query), length(query)); end; if Fehler <> 0 then begin MessageDlg(mysql_error(FDescriptor), mtWarning, [mbOK], 0); end; end else beep; end; |
AW: Datenbank-Einsteiger-Tutorial für mySQL-Datenbanken
Auch wenn man rein theoretisch jeden beliebigen Wert in einem Ansi-String eintragen kann, halte ich das für nicht so optimal. Ein vorhergehendes codieren (Base64 z.B.) wäre vllt. hilfreich.
und woher weißt Du, daß die Daten nicht vollständig übergeben werden? Woliest Du die Daten wieder aus? Gruß K-H |
AW: Datenbank-Einsteiger-Tutorial für mySQL-Datenbanken
HeidiSQL stellt die Binärdaten als Hexwert da und die defekten Bilder kommen nicht mit voller Länge dort an.
Base64 werde ich mir anschauen, sollte helfen, wenn meine Vermutung stimmt. Carsten |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:46 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 by Thomas Breitkreuz