Realbasic: Verbinden met MySQL database
3 januari 2008 - 15:43   
geplaatst door: NvE
Beste,

In Realbasic (2007 R5) ben ik sinds een week begonnen zelf wat progammatjes te schrijven. Nu wil ik een progamma laten verbinden met een MySQL database waarin gegevens opgeslagen kunnen worden. De bedoeling is dat het een soort verhuur/administratie progamma wordt zodat voorraden, facturen, offertes e.d. zo gecontroleerd en e.v.t. uitgeprint kunnen worden.

Ik ben begonnen met een log-in module, waar ik ook meteen vast loop. Door middel van twee edit-fields, een 'Log-In' en 'Reset' button heb ik een interface gemaakt. Als er op login gedrukt wordt is het de bedoeling dat het progamma de gebruikersnaam en wachtwoord in de database opzoekt en bij een match tussen de twee de gebruiker door wordt gestuurd naar een welkom-scherm, en als dat niet het geval is terug gaat naar het login scherm en een bericht geeft dat de gebruikersnaam en wachtwoord niet overeen kwamen.

Efin, de verbinding met de database krijg ik dus niet voor elkaar. De MySQL database (met naam nvepro_adrent) die ik hiervoor wil gebruiken draait lokaal (Mamp Pro) op poort 8889, gebruikersnaam root met een bijbehorend wachtwoord. Voor de MySQL database heb ik in Realbasic de plugin van http://alacatialabs.com/products/realbasic-mysql-plugin/ gebruikt.

De code waarmee ik de verbinding tot stand probeerde te brengen staat bij 'Action' achter m'n Login button. De code:

 

Dim db as mySQLDatabase
 db= New mySQLDatabase
 db.host="localhost"
 db.port=8889
 db.databaseName="nvepro_adrent"
 db.userName="root"
 db.Password="xxxx"
 If db.Connect then
   MsgBox "Verbinding tot stand gekomen!"
 else
   MsgBox "Connection failed!"
 end if

Als ik het progamma run in debug mode, en druk op 'login' krijg ik de melding "Connection failed!" wat in onder het else-statement genoemd wordt.

Kan iemand me helpen met het verbinden met de database, en heeft er iemand suggesties voor de code achter het opzoeken en vergelijken van de usernames/passwords?

Bij voorbaat dank,

Neil

(Bewerkt door NvE om 15:46, 3-01-2008)

Realbasic: Verbinden met MySQL database
3 januari 2008 - 17:11    reactie #1
geplaatst door: AndreRelink
Hallo Neil,

Kan het zijn dat de port instelling niet juist is?
Probeer eens db.port=3306.
Als je niet Local werkt zal je ook je Firewall port moeten openen( port 3306 ).

Succes

Realbasic: Verbinden met MySQL database
3 januari 2008 - 17:21    reactie #2
geplaatst door: NvE
Andre,

Bedankt voor je reactie. Helaas geeft poort 3306 precies hetzelfde resultaat als poort 8889.

Voorlopig draait de boel nog local, maar als de db het web op gaat houd ik de firewall zeker in gedachten.

Realbasic: Verbinden met MySQL database
3 januari 2008 - 17:28    reactie #3
geplaatst door: AndreRelink
Kan je de code  
MsgBox db.ErrorMessage  
toevoegen.

En aangeven wat de error terug geeft.

If db.Connect then
  MsgBox "Verbinding tot stand gekomen!"
else
  MsgBox db.ErrorMessage
end if  

(Bewerkt door AndreRelink om 17:29, 3-01-2008)

Realbasic: Verbinden met MySQL database
3 januari 2008 - 17:33    reactie #4
geplaatst door: NvE
De fout die weergegeven wordt:

"Can't connect to local MySQL server trough socket '/tmp/mysql.sock'(2)"

Hoe is dit op te lossen?

Realbasic: Verbinden met MySQL database
3 januari 2008 - 17:35    reactie #5
geplaatst door: AndreRelink
Is MySQL wel via PHP of een MySQL-TOOL bereikbaar?
Realbasic: Verbinden met MySQL database
3 januari 2008 - 17:43    reactie #6
geplaatst door: NvE
Ik kan de database gewoon bereiken met PhpMyAdmin.

Tot vanmiddag had ik er ook nog een Joomla CMS systeem op lopen, wat werkte.

Realbasic: Verbinden met MySQL database
3 januari 2008 - 17:51    reactie #7
geplaatst door: AndreRelink
Op de site van alacatialabs.com vond ik nog wat aanvullende info.

There is no "Plugin" menu that I am aware of. To see if the plugin is  
installed properly, you can do one of two things:

1) Under the Project->Add->Database menu, you should see "Select MySQL  
Database..."
2) If you type in a code editor "dim db as MySQL" you should see  
MySQLDatabase autocomplete in the code editor.

We don't have much documentation yet, but we're working on some  
tutorials of how to get going. We currently only have what REAL  
Software had, which is nothing :)

Hope this helps,
Jon

Kan je hier iets mee?

Realbasic: Verbinden met MySQL database
3 januari 2008 - 18:05    reactie #8
geplaatst door: NvE
Ik heb een MySQL database aangemaakt via project -> add -> database -> select mysql database.

Ben nu bij m'n host het IP van mijn SQL server op het web aan het opvragen, zodat ik kan kijken of het iets is wat aan m'n lokale progamma zit, of dat het ergens in Realbasic verkeerd gaat.

Voor de zekerheid: hoe open ik m'n Firewall port (3306)?

Realbasic: Verbinden met MySQL database
3 januari 2008 - 18:09    reactie #9
geplaatst door: AndreRelink
Welke OSX versie werk je?


Waarschijnlijk staat je mysql.socket niet in /tmp/ maar in /var/
Probeer eens:

db.port = 3306
db,socket = /var/mysql.sock
of
db.port = 3306
db.socket = /var/mysql/mysql.sock

Realbasic: Verbinden met MySQL database
3 januari 2008 - 18:16    reactie #10
geplaatst door: NvE
Ik gebruik Mac OSX Leopard (10.5.1)

Als ik de regels zo invoer als jij ze opgeeft krijg ik, als ik op 'Run' druk, 'syntax error' bij db,socket = /var/mysql.sock, db.socket = /var/mysql.sock of db.socket = /var/mysql/mysql.sock.

Gelden deze regels ook als je een progamma als Mamp gebruikt, of alleen als je de ingebouwde server van Mac OSX gebruikt?

Realbasic: Verbinden met MySQL database
3 januari 2008 - 20:17    reactie #11
geplaatst door: AndreRelink
In MAMP staat mysql.sock in /Applications/MAMP/tmp/mysql/mysql.sock

Er is mogelijk wel een oplossing maar daarvoor moet je met de terminal werken met sudo privileges.
Daarvoor moet je goed weten wat je aan het doen ben en altijd een volledige back-up van je HD maken.

Realbasic: Verbinden met MySQL database
3 januari 2008 - 21:26    reactie #12
geplaatst door: NvE
Ietsjes trage reactie van mijn kant.

Ik heb Mamp weggegooit, PHP5 en MySQL (+PHPMyAdmin) geinstalleerd op de standaard OSX web server. Er wordt nu verbinding gemaakt met de database . :thumbs-up:

Andre, bedankt voor je support!

Weet iemand toevallig een systeem om in te loggen?

(Bewerkt door NvE om 22:02, 3-01-2008)

Realbasic: Verbinden met MySQL database
3 januari 2008 - 23:44    reactie #13
geplaatst door: AndreRelink
Super, dat het gelukt is.