Centar za edukaciju-BiH



#1 26.09.2010 19:17
pmiroslav Van mreze
Clan
Registrovan od:02.02.2009
Postovi:1,458


Predmet:Objašnjenje SQL koda
Možeš objasniti koja je svrha zanak & (ampersand) i kako i zašto se on koristi u SQL-u. To mi baš nije jasno. kao napr:

SQL = "SELECT * FROM Meni_Tabela WHERE Id=" & Id
ili ovo
stLinkCriteria = "[ID]=" & Forms![IzborProizvoda]![IDDio]
ili ovo
MsgBox _
"This form is not meant to be used independently. " & _
"Please read the documentation in the module " & _
"mdlDatePicker."
ili rcimo ovo

DoCmd.RunSQL "INSERT INTO tblPopis(Materijal,TipElementa,Opis,A,B,Komada)" & _
"SELECT '" & (Materijal) & "','" & Me.TipElementa.Column(1) & "','" & (Dio4) & "','" & Me.Visina & "','" & Me.Å irina & "','" & (Me.Kom) * 1'"
Pozdrav
↑  ↓

#2 26.09.2010 19:31
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,611


Predmet:Re: Objašnjenje SQL koda
SQL = "SELECT * FROM Meni_Tabela WHERE Id=" & Id
'odaberi iz tabele Meni_Tabela sve one redove Koji imaju u polju ID vrijednost koju ima memorijska u kodu koja se zove id.

ili ovo
stLinkCriteria = "[ID]=" & Forms![IzborProizvoda]![IDDio]
'Link kriterija sama po sebi govori sta je to je u stvari WHERE vrijednost u SQL-u.
Znaci ako imate u recordsorce ime neke tabele napr artikli sad postavljamo kriteriju odnsosno uzimamo iz te tabele samo artikle koji zadovoljavaju kriteriju.
u ovom slucaju je to:
Vrijednost polja ID u tabeli koja odgovara vrijednoscu u polju sa forme IzborProizvoda polja IDDio.
ili ovo
MsgBox _
"This form is not meant to be used independently. " & _
"Please read the documentation in the module " & _
"mdlDatePicker."

'Msgbox je objasnjenje koje mi izbacujemo korisniku, a sta pise ovdje neznam jer neznam eng. pa bi morao guglati.
ili rcimo ovo
'
DoCmd.RunSQL "INSERT INTO tblPopis(Materijal,TipElementa,Opis,A,B,Komada)" & _
"SELECT '" & (Materijal) & "','" & Me.TipElementa.Column(1) & "','" & (Dio4) & "','" & Me.Visina & "','" & Me.Å irina & "','" & (Me.Kom) * 1'"
DoCmd.RunSQL "INSERT INTO tblPopis 'ubaci u tabelu red podataka koja se zove popis
(Materijal,TipElementa,Opis,A,B,Komada)" i to u polja koja su navedena
& _ ' ovo je samo vb naredba 6 znaci i a donja crta da se nastavlja u drugom redu.
Misli se samo na pisani kod.
SELECT '" & (Materijal) & "','" & Me.TipElementa.Column(1) & "','" & (Dio4) & "','" & Me.Visina & "','" & Me.Å irina & "','" & (Me.Kom) * 1 ovdje 'su napisani podaci koje upisujemo u gore navedena polja.
'Redosled mora biti isti
' U neka polja se upisuje iz memorijske a neka sa forme.
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#3 26.09.2010 19:39
pmiroslav Van mreze
Clan
Registrovan od:02.02.2009
Postovi:1,458


Predmet:Re: Objašnjenje SQL koda
Nisi me razumio. Meni je jasno to Å¡to koji od tih SQL-a znači.
Pitao sam za uptrebu zanak & (ampersand) u njma

ili koja je razlika između ovog

stLinkCriteria = "[ID]=" & Forms![nazivForme]![ID]
i ovog
stLinkCriteria = "[ID]=forms![nazivForme].[ID]"
Pozdrav
Ovaj post je ureden 1 puta. Posljednja izmjena 26.09.2010 19:43 od strane pmiroslav. ↑  ↓

#4 26.09.2010 19:55
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,611


Predmet:Re: Objašnjenje SQL koda
stLinkCriteria = "[ID]=" & Forms![nazivForme]![ID]
i ovog
stLinkCriteria = "[ID]=forms![nazivForme].[ID]" ' ovo sigurno nece raditi
jer umjesto da saljes u sql neku vrijednost koju treba da trazi u polju id salje ovaj string forms![nazivForme].[ID.
String znaci obican tekst a vjerovatno je id broj, nemora biti ali cesto bude..
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#5 27.09.2010 06:21
pmiroslav Van mreze
Clan
Registrovan od:02.02.2009
Postovi:1,458


Predmet:Re: Objašnjenje SQL koda
Dobro jutro.

A nas dvojica nikako na zelenu granu.
JoÅ¡ jedanput. Mene ne zanima objaÅ¡njenje Å¡to radi određeni SQL string, to mi je jasno.

Nije mi potpuno jasna upotreba znak &&&&&&&&, pa možda i zagrada, navodnika uskličnika i točaka u SQL stringu.

U primjeru sam napravio dugme za otvaranje iste forme na isti načis, sa tri raličita SQL stringa za linkCriterij i svi jednako rade.

Prilozi:
Informacije o tipu datoteke za:rar  db1.rar
Preuzimanja:145
Velicina datoteke:16.75 KB


Pozdrav
Ovaj post je ureden 1 puta. Posljednja izmjena 27.09.2010 06:22 od strane pmiroslav. ↑  ↓

#6 27.09.2010 09:40
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,611


Predmet:Re: Objašnjenje SQL koda
&-sam objasnio ja mislim jedno 3 puta
&-i iovo ispred i ovo "'2" & "2"="22"
"Ja" & "Pjevam"="JaPjevam"

I ovo ima objasnjeno
Sve sto pises pod znacima navoda ili pod znakom ' smatra se obicnim tekstom ostalo je kod ili tvoja cariabla i naraedba Vb.
Ako nije prijavi ti gresku
Ako napises
stLinkCriteria = "[ArtikalID]=" & Forms![frmArtikli]![ArtikalID]
"[ArtikalID]="---Znaci ovo je string tekst &
Forms![frmArtikli]![ArtikalID]---Vrijednost u ovom polju
pa konacan rezultat moze biti "ArtikalID=23"
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
↑  ↓

#7 27.09.2010 16:08
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,611


Predmet:Re: Objašnjenje SQL koda
Posto se ne javljas Vjerovatno opet nije jasno pa cu pokusati ponovo.
Kada otvoris neki modul u njemu mozes pisati kod za vb sve sto nije po pravilima vb-a prijavljivat ce ti gresku.
Mi u kodu mozemo dimenzionisati variable i to ce vb editor prihvatiti.
Variable su ti memorijske lokacije u koje mozes smijestati neke podatke ili rezultate racuna.
Pored ovoga posto skoro uvijek imamo i bazu podataka.
Baza podataka ne razumije vb. Ona samo razumije SQL programski jezik a vb ne razumije sql.
SQL ima opciju da moze prihvatiti bilo koji string. String pisemo izmedju znakova navoda i tu mozemo napisati bilo sta.
Mozemo i zbrajati stringove
Primjer:
PreuzmiIzvorni kôd (vbnet):
  1. Function SaberiStr()
  2. Dim Prvi_string as String ' Dimenzionisana memorijska kao string
  3. Dim Drugi_String as String 'Dimenzionisana memorijska kao string
  4. Dim Zbir_DvaStringa as String'Dimenzionisana memorijska kao string
  5. Prvi_string ="Ja imam" 'Prvi string upisan u memorijsku koja nosi ime Prvi_string
  6. Drugi_String="kompjuter" 'Drugi string upisan u memorijsku koja nosi ime Drugi_String
  7. Zbir_DvaStringa=Prvi_string & Drugi_String ' Sabrane dvije memorijske u jednu i rezultat je "Ja imam komjuter"
  8. ' Isti je retultat ako uradimo i ovako
  9. Zbir_DvaStringa="Ja imam" & "kompjuter"
  10. end function

Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
Ovaj post je ureden 1 puta. Posljednja izmjena 27.09.2010 16:09 od strane zxz. ↑  ↓

#8 27.09.2010 16:28
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,611


Predmet:Re: Objašnjenje SQL koda
Gore sam objasno kako se barata stringovima.
Sada kada hocemo da komuniciramo sa bazom podataka a naveo sam da baza podataka razumije samo SQl programski jezik onda smo iz Vb prinudjeni taj SQ pisati kao string i takav slati SQL.
Ako pogrijesimo u SQL-u to nam nece prijaviti Vb nego baza kada joj proslijedimo ovaj string.
Primjer:
Dim MojSQL as string

MojSQL="SELECT * FROM Artikli WHERE ArtikalID=" & Me.IzborArtikla
Pojasnjenje:
"SELECT * FROM Artikli WHERE ArtikalID=" ' Ovo je string koji smo napisali i ako znamo SQL znamo sta on i znaci
'U prevodu bi znacilo Sva polja iz tabele i sve redove koji imaju u polju ArtikalID vrijednost
'Tu je kraj ovog stringa i sql
'On je nepotpun jer nedostaje vrijenost koju zahtijevamo u polju ArtikalID
Da smo napisali ovako:
"SELECT * FROM Artikli WHERE ArtikalID=2"
Tada bi imali staticki SQl tj. uvijek bi nam taj SQl davao isti artikal a nama to rijetko treba.
Zato smo napravili polje na formi u kome cemo birati sifrun artukla i nakon odabira proslijediti bazi.
Samim tim sada dobijamo dinamicki sql.
To smo napravili tako sto smo ovom statickom dijelu sql stringa dodali Me.IzborArtikla tj. dodali ime polja iz kojeg ce se procitati vrijednost
Posto je ovaj dio vb kod i ovo vb razumije znaci nmora biti pod znacima navoda.
Ukoliko bi ovo stavili pod znake navoda bi obrazlozenje bilo ovako:
MojSQL="SELECT * FROM Artikli WHERE ArtikalID=" & "Me.IzborArtikla"
U prevodu bi znacilo Sva polja iz tabele i sve redove koji imaju u polju ArtikalID vrijednost Me.ImeArtikla a tu vrijednost nema niti jedan red u bazi u polju ArtikalID.
Druga stvar sto ce SQl najvjerovatni prijaviti gresku kada proslijedimo ovaj sql string.
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
Ovaj post je ureden 1 puta. Posljednja izmjena 27.09.2010 17:20 od strane zxz. ↑  ↓

#9 27.09.2010 18:52
pmiroslav Van mreze
Clan
Registrovan od:02.02.2009
Postovi:1,458


Predmet:Re: Objašnjenje SQL koda
Ovo je jako dobro objaÅ¡njeno. Sada mi je puno toga jasnije jer to su stvari koje se teÅ¡ko nađu u Access Help-u
Pozdrav
↑  ↓

#10 27.09.2010 19:20
zxz Van mreze
Administrator
Registrovan od:03.02.2009
Postovi:10,611


Predmet:String u stringu
Kao sto sam naveo u predhodnim postovima Vb- Oivicava string sa znacima navoda, Medjutim i SQl string ogranicava zbacima navoda pa zbog ovoga nastaju problemi.
Znaci ako je polje u bazi kao string i ako hocemo uslov postaviti u sql kodu za to polje naravno da ga moramo oivicit znacima navoda inace ce SQl prijaviti gresku e sada kako to uraditi iz Vb-a.
Ako Pisemo u sql editoru ili Qury-u to bi napr. izgledalo ovako:
"SELECT * FROM Artikli WHERE NazivArtikla ="košulja"
E sad kako poslati ovaj SQL string iz Vb koda. Ako dodamo znake navoda ta cio string to bi izgledalo ocako:
"SELECT * FROM Artikli WHERE NazivArtikla ="košulja""
OVO nece proci jer ce nam Vb prijaviti gresku Zasto?
Ako bolje pogledamo sta u stvari imamo:
"SELECT * FROM Artikli WHERE NazivArtikla =" imamo ovaj string Te rijec Košulja i opst prazan string "".
Vb ce nam javljati gresku na rijeci kosulja jer posto ona u stvari nije oivicenat znacima navoda a nije niti variabla vb-a.
Kako ovo rijesti:
SQL pored znaka navoda kao string prima i znak ' -takozvani znak za apostrof.Ako sada SQL string oivicimo ovim znakom ostje nam slobodan znak za navode za VB.
Sada bi nas SQl string u vb izgledao ovako:
"SELECT * FROM Artikli WHERE NazivArtikla ='košulja'"
Sada ce sve da radi i rijesili smo se problema.
Podrška samo putem foruma, jer samo tako i ostali imaju koristi od toga.
Ovaj post je ureden 1 puta. Posljednja izmjena 27.09.2010 19:20 od strane zxz. ↑  ↓

Stranice (2):1,2


Sva vremena su GMT +01:00. Trenutno vrijeme: 2: 44 pm.