Home - qdidactic.com
Didactica si proiecte didacticeBani si dezvoltarea cariereiStiinta  si proiecte tehniceIstorie si biografiiSanatate si medicinaDezvoltare personala
referate stiintaSa fii al doilea inseamna sa fii primul care pierde - Ayrton Senna





Aeronautica Comunicatii Drept Informatica Nutritie Sociologie
Tehnica mecanica

Baze de date


Qdidactic » stiinta & tehnica » informatica » baze de date
Exemple de utilizare a interogarilor SQL



Exemple de utilizare a interogarilor SQL


Exemple de utilizare a interogarilor SQL


Pentru a demonstra rezultatele limbajului SQL, exemplele urmatoare propun doua proceduri echivalente, una folosind limbajul SQL, cealalta nu.

Pentru a realiza aceste exemple, se creaza un tabel Clienti avand campurile Cli_Societate, Cli_Tara si Cli_Oras si se tasteaza cateva inregistrari in acest tabel.


ACTUALIZAREA INREGISTRARILOR

Codul din exemplul urmator permite modificarea continutului unui camp dintr-un tabel pentru inregistrarile ce corespund criteriilor.

Codul VBA ce utilizeaza o interogare SQL de tip UPDATE

Private Sub Maj_Plati()

Dim cncDeviz As ADODB.Connection

Dim strSQL As Sring

`Actualizarea codului tarii din tabelul Clienti

Set CncDeviz = CurrentProject.Connection

strSQL = „UPDATE Clients SET Clients.Cli_Plati = `RO` _

& „WHERE Clienti.Cli_Oras = „Timisoara”

cncDeviz.Execute strSQL

END SUB


Codul VBA echivalent fara interogarea SQL

Private Sub Maj_Plati()

Dim cncDeviz As ADODB.Connection

Dim rstClient As ADODB.RecordSet

` Deschidere pentru inregistrare

Set CncDeviz = CurrentProject.Connection

Set rstClient = New ADODB.RecordSet

rstClient.Open „Clienti”, cncDeviz, adOpenForwardOnly,_

adLockOptimistic

`Parcurgerea secventiala a tabelului Clienti

Do While Not rstClient.EOF

If rstClienti(„Cli_Oras”)= „Timisoara” Then

rstClient(„Cli_Plata”)= „RO”

rstClient.Update

EndIf

rstClient.MoveNext

Loop

End Sub


INCARCAREA UNEI LISTE DERULANTE

Codul exemplului de mai jos permite afisarea intr-o lista derulanta (controlul zona de lista) a numelui clientilor a caror nume de Societate incepe cu o lista data (litera este scrisa intr-o zona de text).

Pentru a testa acest exemplu:

se creaza un formular numit Clienti

se adauga controalele urmatoare in acest formular:

- o zona de text (txtNameSoc),

- o zona de lista (IstSoc),

- un buton de comanda (cmdLista1).


Codul VBA ce utilizeaza interogarea SQL de tipul SELECT. Continutul listei este rezultatul interogarii SQL.

Private Sub cmdListe1_Click()



Dim strSQL As Sring

`Controlul numelui scris

If txt numeSoc = „ „ Then

MSGBOX(„Trebuie sa tastati cel putin o litera”, _

txtNumeSoc.SetFocus

Exit Sub

End If

`Proprietati ale listei derulante

`Lista contine o interogare

Me.lstSoc.RowSourceType = „Table/Interogare”

strSQL = „SELECT Clienti.Cli_Societate Like `”& _    Me.txtNumeSoc & „*`

Me.lstSoc.RowSource = strSQL

`Reactualizarea datelor listei

Me.lstSoc.Interogare

End Sub


Codul VBA echivalent fara interogarea SQL.

Private Sub cmdListe1_Click()

Dim cncDeviz As ADODB.Connection

Dim rstClient As ADODB.RecordSet

Dim strNumeSoc as String

`Controlarea numelui scris

If txtNumeSoc = „ „ Or IsNull(txtNumeSoc) Then

MSGBOX(„Numele acesta a mai fost introdus”, vbExclamation)

txtNumeSoc.SetFocus

Exit Sub

End If

`Initializarea listei derulante

`Lista contine o suita de valori

Me.lstSoc.RowSourceType = „Lista de valori”

Me.lstSoc.RowSource = „ „

Me.lstSoc.Requery

`Deschiderea unui set de inregistrari

Set cncDeviz = CurrentProject.Connection

Set rstClient = New ADODB.Recordset

rstClient.Open „Clienti”, cncDeviz, adOpenForwardOnly, _

adLockOptimistic

` Parcurgere secventiala a tabelului si adaugarea elementelor in lista

Do While Not rstClienti.EOF

If Left(rst(Client(„Cli_Societate”),1) = _

Left(MetxtNumeSoc, Len(Me.txtNumeSoc)) Then

strNumeSoc = rstClient(„Cli_Societate”)

Me.LstSoc.AddItem strNumeSoc

End If

rstClient.close

End Sub


Observatie:

  1. Exemplele precedente constata faptul ca codul ce utilizeaza SQL este mai scurt si executia sa este mai rapida in special daca tabelul client contine un numar important de inregistrari.



Contact |- ia legatura cu noi -| contact
Adauga document |- pune-ti documente online -| adauga-document
Termeni & conditii de utilizare |- politica de cookies si de confidentialitate -| termeni
Copyright © |- 2024 - Toate drepturile rezervate -| copyright