31

progressokulu.com Advanced Business Language Slide 5

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

DEFINE QUERY

DEFINE QUERY qCust FOR Customer.

Veritabanı

Customer tablosu

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

Uygulama 1 : Son Kayıt Testi

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

Bir Sorguyu Kapatmak

CLOSE QUERY qCust.

Sonuç listesi

ROWID20484020260410104150

Uygulama 2 : Basit Bir Sorgu Yazmak

Ç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

Tabloları Bağlamak(JOIN)

Customer tablosu Order tablosu

OF Seçenekleri ile Kayıtları İlişkilendirmek

Order.CustNum = Customer.CustNum

ORDER OF CUSTOMER

Denktir

Uygualama 3 : İki Tabloyu Bağlamak ve OF Kullanımı

Ç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

Uygulama 4: Tabloları Bir Sorguda Bağlamak

QUERY

1234567

ROWID

Blok başlığı

Veri blokları

Rowid 3246

Veritabanı

Rowid 3245 CustNum Name

OrderNum OrderDate

İ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

Uygulama 5 : Sorgu İmlecini Konumlandırma

Uygulama 6 : Bir Browse Nesnesini Konumlandırma

Sorgu, FIND veya FOR EACH ?

FIND ...

FOR EACH...

GET NEXT…REPOSITION ...

Uygulama 7 : Sorgu Kaydırma