@ Bogdan i ostali... Nemojte mi trolovati .net platformu (pliz) :)
@ Miki
zbog tebe sam otišao na vb6 forum i jedva iskopao nešto... trebao si samo malo proguglati po elitesecurity.org i sigurno bi nešto našao... neko je bio u pravu kada je rekao da tvoje pitanje nije za ovde, nego za vb6... :D
ali da ti na brzaka pomognem...
1. skineš prvo ODBC konektor (bogdane, ne može mysql net konektor, ovo je mnogo matoro :D )
možeš skinuti ODBC 3.51 ili 5.1, kako ti volja
odavde
-- instaliraš ga ;)
2. skineš MySQL 5.5 server
odavde ... (za razliku od 5.1, mnogo lepo se vrti na windozi, a i bogdan će ti reći da sam u pravu)
-- lepo i to instaliraš (ali skini (jedan mnogo lep) .msi za windoze - da se ne za****š :D )
3. skineš i jedan lep GUI da se igraš skoro kao u aksesu ;)
(MySQL Workbench)
4. ovo ide pod broj jedan, ali me mrzi da sada umećem... Skineš i MySQL refman... jedan mnogo lep "tutorijal" koji ti je sve objasnio na 2k i više strana... :)
eh... a sada - kôd:
1. kreiraš jedan modul i u njega strpaš ovo
Code:
Public conn As New ADODB.Connection
Public rs As New ADODB.Recordset
Public rs1 As New ADODB.Recordset
Public rs2 As New ADODB.Recordset
Public mSQL As String
Public mSQL1 As String
Public mSQL2 As String
Sub mSQL_conn()
Set conn = New ADODB.Connection
conn.ConnectionString = "DRIVER={MySQL ODBC 5.1 Driver};" & "SERVER=127.0.0.1;" _
& "DATABASE=ime_tvoje_baze;" _
& "UID=root;" _
& "PWD=tvoja_sifra; OPTION=3;"
conn.Open
End Sub
Function mBaza_pregled(mSQL)
Set rs = New ADODB.Recordset
rs.ActiveConnection = mSQL_conn
rs.CursorLocation = adUseClient
rs.CursorType = adOpenDynamic
rs.LockType = adLockOptimistic
rs.Source = mSQL
rs.Open
End Function
Function mBaza_pregled1(mSQL1)
Set rs1 = New ADODB.Recordset
rs1.ActiveConnection = mSQL_conn
rs1.CursorLocation = adUseClient
rs1.CursorType = adOpenDynamic
rs1.LockType = adLockOptimistic
rs1.Source = mSQL1
rs1.Open
End Function
''// ... i dalje za rs2, rs3...
Dalje, na formi projetka, radiš sledeće kada želiš da podatke prikazuješ u FlexGrid-u:
Code:
Dim trazi_vozilo As String, sifra As String, i As Integer, t As Integer
trazi_nalog = txtReg_br.Text & "%" ''// trazi_vozilo ti je promenljiva koja odgovara vrednostima iz txt boksa sa desne strane znaka jednakosti... % je znak iz 'SQL sintakse i znači da će prikazivati sve podatke kojima su početna slova ona koja unosiš u taj txt boks
Call mSQL_conn ''// ovde pozivaš konekciju na bazu iz gore navedenog modula
mSQL = "Select * from tbl_vozilo where vzlID like '" & trazi_nalog & "'order by vzlID" ''// ovo ti je SQL upit i po tim kriterijumima pretražuješ bazu
Call mBaza_pregled(mSQL) ''// ovde pozivaš f-ju iz modula a kao vrednost mSQL promenljive uzimaš ovaj gornji string (mSQL= ............)
If mPostojeciNal(trazi_nalog) = False Then ''// Funkcija koja proverava da li postoji podatak u bazi (kôd ti je dole ispod)
MsgBox "Nalog broj " & trazi_nalog & " nije registrovan u bazi! Proverite broj naloga.", 48, "O B A V E S T E NJ E!"
txtReg_br.SetFocus
Else:
Me.fgVozilo.Clear ''// ovde čistiš FlexGrid (on se kod mene zove fgVozilo... ti ga nazovi kako hoćeš :)
fgVozilo.Rows = 0
fgVozilo.ColWidth(0) = 1000 ''// ovde mu definišeš broj kolona i njihovu širinu
fgVozilo.ColWidth(1) = 1000 ''// ja sam ih definisao šest
fgVozilo.ColWidth(2) = 1000
fgVozilo.ColWidth(3) = 1000
fgVozilo.ColWidth(4) = 1000
fgVozilo.ColWidth(5) = 1000
On Error GoTo greska ''// usled greške, prebacuje ti se na predposlednju liniju kôda i prikazuje ti MsgBox sa opisom greške koja ti se pojavila
For i = 1 To rs.RecordCount
t = Chr(9) ''// Chr(9) ti je tab vrednost tj, nakon svake unesene vrednosti prelaziš u sl polje
sifra = rs("vzlID") ''// rs("vzlID") vzlID ti je kolona u bazi i td.
fgVozilo.AddItem sifra + t + rs("model_voz") + t + rs("vrsta_voz") + t + rs("tezina_voz") + t + rs("nosivost_voz") ''// ovde definišeš gde u FlexGrid-u
''// ubacuješ vrednosti kojih polja
rs.MoveNext
Next i
End If
Exit Sub
greska: MsgBox ("Greska broj " & Err.Number & vbCrLf & Err.Description), 48
End Sub
Ovo ti je funkcija za proveru postojanja zapisa u bazi (nekada i to zatreba :) ):
Code:
Private Function mPostojeciNal(trazi_nalog As String) As Boolean ''// ova funkcija ti proverava postojanje zapisa po određenom kriterijumu
''// i izbegava pojavu greške u programu
Call mSQL_conn
mSQL = "SELECT * FROM tbl_vozilo WHERE vzlID LIKE '" & trazi_nalog & "'"
Call mBaza_pregled(mSQL)
If rs.EOF = True Then ''// ovaj deo kôda proverava da li postoji zapis u bazi... ako ne postoji onda odrađuje naredne tri linije kôda
rs.Close
Set rs = Nothing
Exit Function
End If
If trazi_nalog = rs("vzlID") Then
mPostojeciNal = True ''// True - postoji zapis u bazi
Else
mPostojeciNal = False ''// False - ne postoji zapis u bazi
End If
End Function
eto ti, pa se dalje sam snalazi... meni je ovo vrtilo bez problema godinama (na MySQL 5.1 i ODBC 3.51, ali vrti mnogo bolje na MySQL 5.5 i ODBC 5.1 ;) )
PS. neko ti je predlagao da pređeš na VB.net... i ja ti to isto kažem... beži dok si još iole mlad...
.net platforma ti je dobra, pre svega što ti se VB6 i VB.net sintaksa ne razlikuje mnogo (bar 40%), a ja sam neke delove kôda prepisivao po principu copy/paste, a neke po istom principu i malo dorade i opet mi vrtilo bez problema... :)
Naravno, neke delove kôda ćeš morati ispočetka da pišeš (jovo - nanovo, ali bože moj!)
druga dobra stvar ovde je što ti se VB.net code spušta prvo na Intermediate Language
(MSIL) , pa pa tek onda na nativni kôd... što će reći da sve aplikacije pisane u VB.net-u možeš da konvertuješ u C#, C++ ili Phyton i obratno... MSIL je tu konačno pomirio ta četiri PL-a!
eto ti... pa se vežbaj... ako gde zapne, potraži me u PP ili na nekom od .NET podforuma :)
Pozdrav!
Some people, when confronted with a problem, think: "I know, I'll use regular expressions."
Now they have two problems!
-Jamie Zawinsky