Bosna i Hercegovina



#1 26.09.2010-19:17
pmiroslav Offline
Clan
Registrovan/a od: 02.02.2009-10:32
Komentari: 1,371


Subject: 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 Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,793


Subject: 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.
Pozdrav
↑  ↓

#3 26.09.2010-19:39
pmiroslav Offline
Clan
Registrovan/a od: 02.02.2009-10:32
Komentari: 1,371


Subject: 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 komentar je mijenjan 1 puta. zadnja izmjena 26.09.2010-19:43 od strane pmiroslav. ↑  ↓

#4 26.09.2010-19:55
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,793


Subject: 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..
Pozdrav
↑  ↓

#5 27.09.2010-06:21
pmiroslav Offline
Clan
Registrovan/a od: 02.02.2009-10:32
Komentari: 1,371


Subject: 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 fajlu: rar  db1.rar
Preuzimanja: 11
Veličina: 16.75 KB


Pozdrav
Ovaj komentar je mijenjan 1 puta. zadnja izmjena 27.09.2010-06:22 od strane pmiroslav. ↑  ↓

#6 27.09.2010-09:40
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,793


Subject: 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"
Pozdrav
↑  ↓

#7 27.09.2010-16:08
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,793


Subject: 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:
DownloadIzvorni kod (vb.net):
  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

Pozdrav
Ovaj komentar je mijenjan 1 puta. zadnja izmjena 27.09.2010-16:09 od strane zxz. ↑  ↓

#8 27.09.2010-16:28
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,793


Subject: 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.
Pozdrav
Ovaj komentar je mijenjan 1 puta. zadnja izmjena 27.09.2010-17:20 od strane zxz. ↑  ↓

#9 27.09.2010-18:52
pmiroslav Offline
Clan
Registrovan/a od: 02.02.2009-10:32
Komentari: 1,371


Subject: 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 Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,793


Subject: 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.
Pozdrav
Ovaj komentar je mijenjan 1 puta. zadnja izmjena 27.09.2010-19:20 od strane zxz. ↑  ↓

#11 27.09.2010-19:56
pmiroslav Offline
Clan
Registrovan/a od: 02.02.2009-10:32
Komentari: 1,371


Subject: Re: Objašnjenje SQL koda
Znači ako sam dobro razumio za ovakav slučaj, ako je id broj piše se bez navodnika

SQL = "SELECT * FROM Meni_Tabela WHERE Id=" & id

a ako je string sa navodnicima

SQL = "SELECT * FROM Meni_Tabela WHERE Id=" & "id"
Pozdrav
Ovaj komentar je mijenjan 1 puta. zadnja izmjena 27.09.2010-19:56 od strane pmiroslav. ↑  ↓

#12 27.09.2010-21:22
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,793


Subject: Re: Objašnjenje SQL koda
Da upravo tako sql isto zahtijeva da se string naznaci navodima.
Pozdrav
↑  ↓

#13 28.09.2010-11:48
zxz Offline
Administrator
Registrovan/a od: 03.02.2009-16:22
Komentari: 9,793


Subject: Re: Objašnjenje SQL koda
Da napomenem ovo nije samo pravilo vb-a. Ovo je opste pravilo pisali vi u PHP C ili drugdje.
Uvijek morate misliti o tome da sql-u mozete proslijediti samo string iz programskih jezika sem ako dirktno ne piste sql u sql editoru.
Pozdrav
↑  ↓

Stranice (1): 1


All times are GMT +01:00. Current time: 17.11.2018-20:20.