Ima josh jedna varijanta pristupa MySQL bazi iz VB6, bez korishtjenja ADO-a (koji btw, organski ne podnosim)
Mozhesh da probash sa koristjenjem MyVbQL biblioteke, koju mozhesh natji na
Planet Spurce Code, ili da proGooglash malo za myvbql.dll po netu... Prednost ako skinesh sa PSC-a je da imash source code ove biblioteke, i mozhesh da je menjash ako ti treba neka dodatna funkcionalnost... Naravno, taj source mozhesh dodati direkt u projekat, bez potrebe za posebnim kompajliranjem, tako da smanjish broj dll-ova potrebnih za rad tvog programa...
Jedino shto ovoj biblioteci treba je libmysql.dll negde u putanji, koja se koristi za pristup MySQL serveru, bilo lokalno, bilo preko mrezhe...
Evo i primera koji sam napravio za ovu biblioteku... na engleskom je, jer sam je postavio davno na drugom forumu, pa da sad ne kucam ponovo... Mislim da tje biti jasna uporeba...
Code:
'Here I create a variable named MySQL as a new connection object for MySQL
Global MySQL As New MySQL_CONNECTION
Private Function MySQL_Connect() As Boolean
Dim res_MySQL As MYSQL_CONNECTION_STATE
MySQL_Connect = False
res_MySQL = MySQL.OpenConnection("server", "username", "password", "database", 3306, CLIENT_COMPRESS)
If res_MySQL = MY_CONN_OPEN Then
MySQL_Connect = True
End Function
' Query -> MySQL query to execute.
' CloseRS -> Optional. Close recordset created after executing Query.
' RS -> Optional. Reference to externaly created variable, declared as MYSQL_RS. If not closed, it will be available to the program after the query is executed.
' lAffected -> Optional. Numer of rows affected after te Query.
Public Sub SQLQuery(ByVal Query As String, Optional ByVal CloseRS As Boolean = False, Optional ByRef RS As MYSQL_RS, Optional ByRef lAffected As Long)
Dim ERR As MYSQL_ERR
Set RS = MySQL.Execute(Query, lAffected)
Set ERR = MySQL.Error
If ERR.Number <> 0 Then
' Handle any eventual errors that occurred during MySQL query
End If
ERR.Clear
Set ERR = Nothing
If CloseRS Then
RS.CloseRecordset
Set RS = Nothing
End If
End Sub
Public Sub DisplayData(ByRef RS As MYSQL_RS)
Dim p_Date As Date
If RS.RecordCount > 0 Then
p_Date = FromUnixTime(RS.Fields("date").value)
lblDate.Caption = Format(p_Date, "dd. mmmm yyyy")
txtTitle.Text = UTF8.UTF8ToANSI(RS.Fields("title").value)
txtDescription.Text = UTF8.UTF8ToANSI(RS.Fields("describe").value)
txtContent.Text = UTF8.UTF8ToANSI(RS.Fields("content").value)
End If
RS.CloseRecordset
Set RS = Nothing
End Sub
Biblioteka ima 4 klase:
MYSQL_CONNECTION -> Omogutjava konektovanje na MySQL server
MYSQL_RS -> Omogutjava pristupanje tabelama u MySQL bazi
MYSQL_FIELD -> Omogutjava pristupanje poljima unutar MySQL tabele
MYSQL_ERR -> Omogutjava pristup objektu greshaka, koji vratja eventualne greshke u toku MySQL sesije
Poljima se pristupa na isti nachin kao i kolekcijama, putem indexa, ili imena polja:
Code:
Recordset.Fields("fieldname").Value
Recordset.Fields(fieldindex).Value
Napomena:
FromUnixTime() funkcija je moja funkcija koja pretvara UNIX timestamp u Date format. UTF8 je klasa koju sam napisao, kako bih mogao da koristim nasha slova (latinichna), u bazi... Konkretan primer sam izvukao iz programa koji je punio MySQL bazu textom, koji je kasnije ispisivan na sajtu... Sve naravno u UTF8... Ovo kazhem, jer su ove dve stvarchice totalno nepotrebne u celoj prichi sa pristupanjem bazi...
-
SKRati link -
JaZaKraljevo.rs -
"I have never let my schooling interfere with my education." - Mark Twain