[ Brain raider @ 11.05.2010. 19:29 ] @
Nakacena je pomenuta baza i slicica kako treba da izgleda u formi Hvala http://rapidshare.com/files/386143334/Baza.zip.html |
[ Brain raider @ 11.05.2010. 19:29 ] @
[ t.marko016 @ 11.05.2010. 21:51 ] @
Svako ce ti reci baci se na SQL, ali ako si pocetnik... ja sam takve stvari radio s Data1 kontrolom dok nisam znao SQL.
Ako planiras da radis nesto ozbiljnije i da se bavis ovime blago meni monitor u sake i baci se na SQL, ako imas iskustva sa Basic-om ili prog. jezicima nedelju dana je mnogo da savladas SQL, ja sam pravio bauka od njega i do skoro ga nisam znao. A inace za ovo ADO Data kontrola i MSFlexGrid mada neki koriste i ListView ali na slici je koriscena MSFlexGrid kontrola. Pozdrav [ Brain raider @ 11.05.2010. 23:25 ] @
Ja sam do sada koristio ListViev ali za ovo sto radim mi ne odgovara, treba mi MSFlexGrid ali ja ne znam da ga koristim pa mi treba neki primer.
Znam da je MySQL zakon ali nemam primer iz koga da ucim, tako da su svi moji pokusaji bili uzaludni. Pomoglo bi ako imas neki jednostavan primer da ga prostudiram. [ t.marko016 @ 12.05.2010. 00:22 ] @
Evo kreni odavde http://www.bhwebmasters.net/?p=154, a ako si radio sa ListView-om neces imati problema ni sa MSFlexGrid-om, nista posebno.
Pozdrav [ Brain raider @ 13.05.2010. 19:05 ] @
Znam da ce sledece pitanje zvucati kao tvoje gubljenje vremena ali nije.
Ako ja hocu da radim nesto u SQL-u sta treba da instaliram na kompu? Jer su se kod mene javile sumnje sta je u stvari SQL. Gde ja u stvari treba da unosim one komande SELECT, DISTINC...? I kako ja da objasnim VB-u da treba da uradi: Private Sub Form_Load() procitaj iz baze kolonu 1 i prikazi je u MSFlexGrid1 End Sub Ja ucim na malo specifican nacin pa ti ovo pretpostavljam deluje malo nebulozno. [ t.marko016 @ 13.05.2010. 19:10 ] @
Nista ne trebas da instaliras, samo u Components da ukljucis "Microsoft ADO Data Control" i njome moras da se konektujes na bazu.
Evo ti tutorijal za te stvari: http://www.w3schools.com/ado/default.asp Pozdrav [ Brain raider @ 13.05.2010. 19:32 ] @
Ok,
a u cemu pravim tabele-bazu? [ t.marko016 @ 13.05.2010. 20:06 ] @
Microsoft Office Access 2003
[ Brain raider @ 13.05.2010. 21:29 ] @
pa u cemu je onda razlika?
Ja sam i do sada koristio Access kao bazu. [ t.marko016 @ 14.05.2010. 08:41 ] @
Ne znam kako si ranije radio sa bazom.
Ali ja bez SQL-a nisam mogao da uradim neke stvari tj. bio sam ogranicen be njega a sa SQL-om mozes sve vezano za baze. [ Brain raider @ 14.05.2010. 10:04 ] @
Ok,
mene interesuje gde unosim SQL komande? Tacnije, kada hocu da objasnim formi u VB6 da pri ucitavanju treba da povuce iz Baza.mdb tabela "Clanovi" povuce sve podatke i prikaze ih u Form1.MSFlexGrid1. [ miki987 @ 14.05.2010. 12:52 ] @
imas primer na temi ispod ove postovao sam bas ono sto te zanima ali evo i ovde
bazu stavljas u c:/ [ t.marko016 @ 14.05.2010. 16:04 ] @
Ovo je odlican primer, sve komande stavljas u string.
[ Brain raider @ 15.05.2010. 07:26 ] @
Sta je u ovom primeru SQL?
[ miki987 @ 15.05.2010. 10:22 ] @
sql je zapravo jezik koji sluzi za radi, obradu podataka a baza npr.Access mesto gde ce se ti podaci cuvati nakon obrade, unosa i t.d.
vb6 je program koji ce napraviti interakciju sa korisnikom u radu sa tim podacima, prikazati mu podatke na graficki lepse resen nacin od Accss-a kako to funkcionise: vb6 pomocu upita otvara konekciju ka bazi koja se nalazi na nekoj putanji na HD-u Code: '//=================================================== 'konektovanje baze '//=================================================== Public Sub openconn() conn.Provider = "Microsoft Jet 4.0 OLE DB Provider;Data Source=C:\baza_program.mdb;" conn.Open End Sub '//=================================================== 'diskonektovanje baze '//=================================================== Public Sub closeconn() conn.Close End Sub dakle u ovom slucaju imamo openconn koji sluzi da otvori bazu i closeconn da zatvori, pa tako imamo sledece: Code: '//=================================================== 'otvarannje forme '//=================================================== Private Sub Form_Load() popuni_listview2 End Sub ovo pokazuje sta se desava ofmah cim se program pokrene, a "popuni_listview2" je isto neka vrsta zadatka koji treba da se odradi cim se program startuje "popuni_listview2" definises predhodno, das mu ime a on izleda ovako: Code: '//=================================================== 'popunjavanjelistview-a 2 '//=================================================== Sub popuni_listview2() Dim SQL As String openconn '/// otvara klonekciju i pronazalazi bazu i tablicu koju definisemo ovde ispod SQL = "SELECT DISTINCT broj_fakture,redni_broj FROM baza_faktura ORDER BY redni_broj DESC;" '//// ovo je putanja gde se i sta otvoriti u bazi . tablici . po columnu Set rs = conn.Execute(SQL) If rs.EOF Then '///// If petlja sluzi da proveri da li je zadatak ispunjen pa ako nije prijavi gresku ovde ispod... MsgBox "U bazi faktura nema podataka!", vbExclamation, "Access"'/// greska closeconn'//// zatvaranje konekcije Exit Sub End If ListView2.ListItems.Clear '/// brise*cisti sve sto se nalazi na listview-u Do Until rs.EOF ListView2.ListItems.Add 1, , rs("redni_broj")'//// i ovde sada listview puni sa pdoacima iz baze po columnima ListView2.ListItems(1).SubItems(1) = rs("broj_fakture") rs.MoveNext Loop closeconn ListView2.ListItems(1).Selected = True End Sub Ako zelis uciti moras stalno raditi na praksi, ja se povremeno bavim ovim i zavrsavam moje potrebe, jos uvek ne komercijalno jer ja zapravo nisam izgradjen programer,zavistan sam od es-a, tutorijala i primera, kada radim skoro uvek drzim predhodni program koji sam radio za koriscenje kodova i t.d. ali za razliku od ranije napredovao sam pa umem citati kod i razumeti sustinu. Meni su pored ovih ljudi piomogli najvise primeri, PlanetSource je extra sajt sa gotovim primerima, a primer od kojeg sam poceo i koji mi mnooogo pomoogao je ovaj u postu nadam se da sam ti pomogao bar malo i ispravno [ t.marko016 @ 15.05.2010. 10:27 ] @
U promenjljivoj "SQL" su sve SQL komande koje se izvrse u liniji ispod nje.
Code: 'SQL Kod: SQL = "SELECT DISTINCT broj_fakture,redni_broj FROM baza_faktura ORDER BY redni_broj DESC;" 'Izvrsavanje komandi Set rs = conn.Execute(SQL) Nemoj da te buni ono ispred "SQL = ..." kao sto rekoh to je samo promenljiva(String) potpuno je nebitno sta ce biti. Pozdrav [ SpizaGenije @ 15.05.2010. 11:20 ] @
Da se i ja uključim malo... :)
Ovaj primer što je miki naveo je primer kako popunjavaš list... ali, ako imaš više formi u kojima pozivaš bazu, ili više mesta na formi, onda ti je najbolje da napišeš modul, kako bi sa dve, tri linije kôda skretio posao... evo ti modul za konekciju na bazu... moraš ga malo prepraviti naravno... :) Code: Option Explicit 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 () Dim AdoDatabasePath As String Dim AdoPassword As String AdoDatabasePath = "tvoja_putanja_do_baze" AdoPassword = "tvoja_sifra_za_bazu" If konekcija.State = 1 Then konekcija.Close konekcija.Open "Provider=Microsoft.Jet.OLEDB.4.0;Password='';" & _ "User ID=Admin;Data Source=" & AdoDatabasePath & ";" & _ "Jet OLEDB:Database Password='" & AdoPassword & "'" End Sub Function mBaza_pregled(mSQL) Set rs = New ADODB.Recordset rs.ActiveConnection = konekcija 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 = konekcija 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: 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 Malo je ovo sve nepregledno zbog komentara koje sam ti ostavljao da bi ti bilo sve što razumnije , ali kad sve kopiraš u VB i kad ti to sve propisno ofarba, biće ti mnogo preglednije i jasnije :) [ Brain raider @ 15.05.2010. 15:25 ] @
Aha,
ako sam ja razumeo, SQL je programski jezik koji sluzi za komunikaciju izmedju baze i aplikacije? U ovom slucaju SQL se unosi u VB kod? Hoce li mi SQL pomoci da dva ili vise korisnika mogu da pristupe bazi bez da izbacuje gresku? PRIMER Baza se nalazi na serveru a 3-4-5 ili vise racunara sa istom aplikacijom joj pristupaju u isto vremei iscitavaju podatke? [ SpizaGenije @ 15.05.2010. 16:37 ] @
Structured Querry Language (SQL) je jezik za manipulaciju podacima u nekoj bazi (MySQL, Access, Progress, MS SQL itd) ...
Da, u ovom slučaju upisuješ SQL sintaksu u one znake navoda... pogledaj prethodni kôd (mSQL="SELECT * FROM nesto bla bla bla") Baze podataka su i kreirane upravo da bi se što lakše manipulisalo podacima i da do jednog podatka u svakom momentu može da pristupi više korisnika (da ih gleda, ne menja, jer samo jedan korisnik u trenutku može menjati podatke bez da ih još neko koristi) i da se osećaju kao da sami koriste te podatke... Koristeći programske jezike (u ovom slučaju VB6) mi pristupamo tim podacima i radimo s njima šta hoćemo... možemo ih pregledati (SELECT) umetati (INSERT) brisati (DELETE) i još milion korisnih stvari :) praveći tako GUI preko koga upravljamo podacima što lakši i što jednostavniji korisnicima da bi se povezivao na bazu podataka i pri tome koristio SQL sintaksu, moraš provesti dosta vremena učeći je (na kraju ses isplati)... evo ti jedan link prema stranici na kojoj ima dosta korisnih stvari (tutorijala, vežbi, drugih linkova, sample kodova etc etc etc ) --- www.w3schools.com --- pa prvo nauči koristiti SQL sintaksu, pa se kasnije vrati ovamo da razgovaramo ponovo, jer na ovaj način baš i nemaš mnogo koristi od nas... :) [ Brain raider @ 15.05.2010. 18:24 ] @
Tvoj post mi je bio i vise nego koristan.
HVALA Imam samo jos jedno pitanje, program koji pravim trenutno koristi Access kao bazu ja zelim da predjem na MySQL koji u stvari ne znam da koristim. ima li ko kakav jednostavan VB6 projekat sa MySQL bazom i informaciju koji MySQL da skinem i instaliram. Jos jednom HVALA [ SpizaGenije @ 17.05.2010. 13:15 ] @
Možeš skinuti bilo koji MySQL server...
Ja koristim Apache Triad, zato što je to PHP MySQL server... Kada ga budeš instalirao, na firewall-u oslobodi 3306 port ili jednostavno isključi firewall :) zato što SQL serveri koriste 3306 i 80 portove... (napomena - na windows visti ne možeš pokrenuti server jer neka od vistinih aplikacija već koristi port 80, ne znam koja jer se ne bakćem vistom... windows 7 i xp su ok) takođe, moraš da instaliraš i ODBC driver (ja koristim verziju 5.1.6, pa je možeš i ti skinuti /ili ver 3.51 /) kako kreirati bazu i tabele ćeš naučiti na onom sajtu koji sam ti "nalepio" u prethodnom odgovoru... Što se tiče VB kôda, sve ostaje isto osim modula za konekciju, gde umesto Code: Sub mSQL_conn () Dim AdoDatabasePath As String Dim AdoPassword As String AdoDatabasePath = "tvoja_putanja_do_baze" AdoPassword = "tvoja_sifra_za_bazu" If konekcija.State = 1 Then konekcija.Close konekcija.Open "Provider=Microsoft.Jet.OLEDB.4.0;Password='';" & _ "User ID=Admin;Data Source=" & AdoDatabasePath & ";" & _ "Jet OLEDB:Database Password='" & AdoPassword & "'" End Sub kucaš Code: 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 pozz... i javi ako gde zapneš :) Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|