Upload
kaan-verdioglu
View
197
Download
2
Embed Size (px)
Citation preview
Bölüm 5 : Sorguları Kullanmak
Bu dersi tamamladığımız zaman şunları yapabileceksiniz;
• Bir sorgu tanımlamak• Bir sorgu açmak• Sonuç listesindeki kayıtlara erişmek• Sorgu içinde dolaşmak• Sonuç listesindeki belirli bir kayda gitmek
DEFINE QUERY ...1. Sorguyu tanımla
2. Aç ve sonuç listesini oluştur
3. Kayıtlar arasında dolaş
4. Sorguyu kapat
ROWID20484020260410104150
Sonuç listesi
Sonuç listesi
Kayıtları Sorguya Döndürmek
OPEN QUERY Sonuç Listesini Oluşturur
OPEN QUERY qCust FOR EACH Customer.
Sonuç listesi
ROWID20484020260410104150
Veritabanı
Customer tablosu
Sonuç Listesine Erişmek
OPEN QUERY qCust FOR EACH Customer.
GET NEXT qCust.
Kayıt arabelleği
ROWID20484020260410104150
Veritabanı
Customer tablosu
GET FIRST
Cust Num Name Sales Rep 4 Go Fishing Ltd SLS 6 Fanatical Athletes SLS 10 Just Joggers Limited SLS 17 High Tide Sailing SLS 26 Bulls Eye Sports SLS 42 Stall-turn Flying SLS 54 Spokes Cycles SLS
OPEN QUERY qCust FOR EACH Customer WHERE SalesRep = “SLS”.GET FIRST qCust.
GET NEXT
Cust Num Name Sales Rep 4 Go Fishing Ltd SLS 6 Fanatical Athletes SLS 10 Just Joggers Limited SLS 17 High Tide Sailing SLS 26 Bulls Eye Sports SLS 42 Stall-turn Flying SLS 54 Spokes Cycles SLS
REPEAT: GET NEXT qCust.END.
Kayıt Ara Bellekte mi?
GET NEXT qItem. IF NOT AVAILABLE Item THEN LEAVE.
?
GET NEXT qCust. IF AVAILABLE Customer THEN DISPLAY Customer.
Kayıt arabelleği
4 Go Fishing Ltd SLS
Sonuç Listesinin Sonunda mıyım?
IF QUERY-OFF-END(“qCust”)...
Sonuç listesi GET NEXT qCust.
Kayıt arabelleği
ROWID20484020260410104150
Veritabanı
Customer tablosu
QUERY-OFF- END ve AVAILABLE
IF QUERY-OFF-END
Sonuç listesi
ROWID20484020260410104150
IF AVAILABLE
?
Kayıt arabelleği
4 Go Fishing Ltd SLS
TRUE FALSE
Çoklu Tablolardan Kayıtlara Erişmek
Lift ToursUrpon FrisbeeHoopsGo Fishing Ltd. . .
1234
. . .
Name CustNum CustNum OrderNum
111111
63679
177185
1335
Customer tablosu Order tablosu
SalesRep
HXMHXMHXMHXMHXMWeb
OF Seçenekleri ile Kayıtları İlişkilendirmek
Order.CustNum = Customer.CustNum
ORDER OF CUSTOMER
Denktir
Çoklu Tablo Kullanımı
Customer tablosuName
CustNum
Order tablosu
CustNum
OrderNum
OrderLine tablosu
OrderNum
ItemNum
Item tablosuItemNum
ItemName
Çoklu Kayıtları Seçmek
EACH OrderLine WHERE Item.ItemNum = OrderLine.ItemNum,EACH Order WHERE OrderLine.OrderNum = Order.OrderNum,EACH Customer WHERE Order.CustNum = Customer.CustNum
EACH OrderLine OF Item, EACH Order OF OrderLine, EACH Customer OF Order
Denktir
İmleci Konumlandırmak
OPEN QUERY qItem FOR EACH Item.
REPOSITION qItem TO ROWID 18.
ROWID 202 ROWID 32ROWID 112 ROWID 18 ...
İmleç
ROWID 202 ROWID 32ROWID 112 ROWID 18 ...
İmleç
ROWID 202 ROWID 32ROWID 112 ROWID 18 ...
GET NEXT qItem.
İmleç
1.
2.
3.
İleri ve Geri Konumlandırma
OPEN QUERY qItem FOR EACH Item.
REPOSITION qItem FORWARDS 2.
ROWID 202 ROWID 32ROWID 112 ROWID 18 ...
İmleç
ROWID 202 ROWID 32ROWID 112 ROWID 18 ...
İmleç
ROWID 202 ROWID 32ROWID 112 ROWID 18 ...
REPOSITION qItem BACKWARDS 1.
İmleç
1.
2.
3.
-1
+ 2