Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

MySQL korrekt ansprechen...

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Maestro



Anmeldungsdatum: 04.04.2006
Beiträge: 18

BeitragVerfasst am: 26.04.2006, 14:44    Titel: MySQL korrekt ansprechen... Antworten mit Zitat

Hallo zusammen,

mag mir mal jemand aufdröseln, wie ich mit fb korrekt eine mysql-db mit passwort, user und dem ganzen zeug anspreche - ich werden aus dem Beispiel nicht schlau.


das dort verwendete
Code:
( mysql_real_connect( db, NULL, NULL, NULL, NULL, MYSQL_PORT, NULL, 0 )
stellt sich mir so dar, als würde die angesprochene db ohne das auskommen...

Help! Gnade, Gnade!

lg Martin
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 26.04.2006, 16:13    Titel: Antworten mit Zitat

jo, der meldet sich einfach ohne benutzer, passwort und zeug an nicht jeder db-server hat aktive benutzerverwaltung, wenn die URL auch als NULL übergeben wurde wird vermutlich localhost als ServerURL genommen, NULL heißt entweder "nichts" oder teilweise auch "standard".

schau einfach mal ob du in der mysql-referenz die einzelnen funktionen der parameter findest, das dürfte dir helfen.
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
max06



Anmeldungsdatum: 05.12.2004
Beiträge: 390
Wohnort: Augsburg

BeitragVerfasst am: 26.04.2006, 16:21    Titel: Antworten mit Zitat

Hast du schon mal was mit Mysql in Verbindung mit FB gemacht? Wenn nicht, kann ich dir helfen, das ist mein Spezialgebiet (auch wenn mich gewisse Personen deswegen auslachen lächeln). Ich habe mir extra eine funktion geschrieben, die den Datenbank-Zugriff übernimmt. Die kannst du haben, sie wird dir sicher zum Verstehen helfen.

Grüße
Florian

EDIT: Ach ja: die Freebasic/inc/mysql/mysql.bi ist sehr hilfreich happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 26.04.2006, 16:26    Titel: Antworten mit Zitat

keiner lacht dich aus weil mysql dein spezialgebiet is *g*
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
max06



Anmeldungsdatum: 05.12.2004
Beiträge: 390
Wohnort: Augsburg

BeitragVerfasst am: 26.04.2006, 16:43    Titel: Antworten mit Zitat

Okay, nicht, weil es mein Spezialgebiet ist, sondern weil ich es verwende happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Maestro



Anmeldungsdatum: 04.04.2006
Beiträge: 18

BeitragVerfasst am: 26.04.2006, 16:46    Titel: Antworten mit Zitat

Danke für die schnellen Antworten!

mysql.bi hat Folgendes geschrieben:
declare function mysql_real_connect alias "mysql_real_connect" (byval mysql as MYSQL ptr, byval host as zstring ptr, byval user as zstring ptr, byval passwd as zstring ptr, byval db as zstring ptr, byval port as uinteger, byval unix_socket as zstring ptr, byval clientflag as uinteger) as MYSQL ptr


...will also heißen, dass die Parameter in der Reihenfolge:

DBName(?),
url,
DBuser,
DBpassword,
(nochmal DBName?),
DBPort,
Socket (was auch immer da reinsoll),
clientflags (auch da keine Ahnung, was reinsoll)

sind?

Ich brauche das ziemlich genau, weil meine DB-Server aus sicherheitsgründen nicht mit den Defaulteinstellungen laufen.

ich komme aus dem Php-Lager, sodass mir die ein-oder andere Terminologie nicht geläufig ist.

@Florian: Dein Angebot würde ich gern annehmen, das Beispiel ist leider zu rudimentär, um für so einen, wie mich nützlich zu sein - sollte man mal komplettieren verlegen

lg Martin
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 26.04.2006, 17:05    Titel: Antworten mit Zitat

max61989 hat Folgendes geschrieben:
Okay, nicht, weil es mein Spezialgebiet ist, sondern weil ich es verwende happy


Nein, auch nicht, wofür du das verwendest, lachen wir^^
Zunge rausstrecken
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
max06



Anmeldungsdatum: 05.12.2004
Beiträge: 390
Wohnort: Augsburg

BeitragVerfasst am: 26.04.2006, 17:06    Titel: Antworten mit Zitat

Das ist jetzt mal die schnell rauskopierte funktion aus meinem Programm:

Code:

option explicit
#INCLUDE once "mysql/mysql.bi"
#define NULL 0   

declare function mysql (query as string) as string
declare sub print_error

dim shared db as MYSQL ptr      : db = mysql_init( NULL )
dim shared db_host as string      : db_host = "dein host"
dim shared db_user as string      : db_user = "dein DB-Benutzer"
dim shared db_passwrd as string   : db_passwrd = "dein DB-Passwort"
dim shared db_database as string   : db_database = "die zu verwendende Datenbank"
dim shared res as MYSQL_RES ptr
dim shared row as MYSQL_ROW

dim shared as string ergebnis

ergebnis=mysql("CONNECT")      'zum Verbinden
ergebnis=mysql("DISCONNECT") 'zum trennen

function mysql (query as string) as string
   dim mysql_ergebnis as string
   
   select case left$(query, 6)
      case "CONNEC"
         print "Verbindung wird hergestellt"
         if( mysql_real_connect( db, db_host, db_user, db_passwrd, db_database, MYSQL_PORT, NULL, 0 ) = 0 ) then
            print "Es konnte leider keine Verbindung zum Datenserver aufgebaut werden."
            print "Bitte versuchen sie es spaeter nochmal."
            print_error
            mysql_close( db )
            end
         else
            print "Verbindung zum Datenserver hergestellt."
         end if
         print "Datenbank wird ausgewaehlt"
         IF( mysql_select_db( db, db_database ) < 0 ) then
            print "Verbindung zur Datenbank konnte leider nicht korrekt aufgebaut werden."
            print "Bitte versuchen Sie es spaeter nochmal."
            print_error
            mysql_close( db )
            end
         else
            print "Verbindung zur Datenbank aufgebaut."
         end if
      case "UPDATE"
         if mysql_query(db, query)<>0 then
            print_error
         end if
         mysql_ergebnis="0"
      case "INSERT"
         if mysql_query(db, query)<>0 then
            print_error
         end if
         mysql_ergebnis="0"
      case "SELECT"
         mysql_query(db, query)
         res = mysql_store_result( db )
         row = mysql_fetch_row( res )
         if row<>0 then
            mysql_ergebnis=*row[0]
         else
            mysql_ergebnis="0"
         end if
      case "DELETE"
         mysql_query(db, query)
      case "DISCON"
         mysql_close(db)
      case else
         mysql_ergebnis="Sorry, aber keine Aktion verknuepft..."
   end select

   return mysql_ergebnis
end function

sub print_error
   print ""
   print "   Fehler: "; mysql_errno( db )
   print ""
   mysql_close(db)
   sleep
   end
end sub


In der funktion mysql siehst du alle Möglichen Aktionen, mehr habe ich noch nicht. Beim Auslesen kannst du immer nur einen Wert auslesen, also eine komplette Tabelle rauszuziehen habe ich noch nicht fertig.
bei dem Aufruf muss die Groß- und Kleinschreibung unbedingt beachtet werden, der Query ist genauso aufgebaut, wie in php. Nicht das ; am ende des queries vergessen... dass gibt Fehler, die man sehr oft übersieht... und FB meckert bei diesen nicht...


Grüße
Florian
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 27.04.2006, 09:01    Titel: Antworten mit Zitat

Ich hatte früher einmal eine QB-Lösung veröffentlicht:

http://beilagen.dreael.ch/QB/MYSQL.BAS

Grundbasis dort: Ich verwende den ODBC-Treiber und greife via ADO (Active Data Objects; typisches Microsoft-API) auf die MySQL-Datenbank zu, die z.B. auf einem Linux-Server oben läuft.

In FreeBasic kann man vermutlich all die dort in der dynamisch generierten VBScript-Routine getätigten WinAPI-Aufrufe direkt aufrufen, so dass die Umwege über temporäre Datei entfallen.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz