sql ile arama
sql ile arama
arkadaşlar bir tablo üzerinde arama yapmak istiyorum
fakat arama yaparken LOCATE veya FINDNE.. gibi yöntemleri kullanamıyorum..
yani bir tabloda
select ADI,SOYADI,.. FROM TABLO WHERE ADI=EDIT1.TEXT;
şeklinde arama yapınca normal olarak o kaydı buluyor ve sadece o kaydı
listeliyor..
benim istediğim o kaydın üzerine konumlanması fakat diğerlerinide göstermesi,, yani locatenin yaptığı gibi..
Locate kullanamıyorum çünkü delphi ile değil LAZARUS ile bunu yapmak istiyorum..
fakat arama yaparken LOCATE veya FINDNE.. gibi yöntemleri kullanamıyorum..
yani bir tabloda
select ADI,SOYADI,.. FROM TABLO WHERE ADI=EDIT1.TEXT;
şeklinde arama yapınca normal olarak o kaydı buluyor ve sadece o kaydı
listeliyor..
benim istediğim o kaydın üzerine konumlanması fakat diğerlerinide göstermesi,, yani locatenin yaptığı gibi..
Locate kullanamıyorum çünkü delphi ile değil LAZARUS ile bunu yapmak istiyorum..
bu aramayla sadece editte yazılanı getirir..LAZARUS ben bunu ilk defa duydum..artı daha değşik aramalrda yaparsın ama delphiyle değil demişsin..delphiyle deseydin yöntem çok..
kolay gelsin
kolay gelsin
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.
***********************************
ase
yukardaki kod sadece edit tedi ne eşit olan kayıt veya kayıtları getirir..
koşul koymuşuz.. where ADI=EDIT1.TEXT
yani tablonun tamamını değil edit e uyan kısmını getirir..
,,,
vedatkaba
Lazarus GPL lisansı ile geliştirilen bir proje, yine delpli benzeri bir ide si var
ve dil olarak ta yine obj.pascal kullanıyor..
Benim istediğim sorgu sonucu tümünü listelemek fakat sorgudaki koşula uyan kaydın üzerine konumlanmak..
Fakat burda locate ve find yöntemlerini kullanamıyorum.. Çünkü lazarus desteklemiyor..
yukardaki kod sadece edit tedi ne eşit olan kayıt veya kayıtları getirir..
koşul koymuşuz.. where ADI=EDIT1.TEXT
yani tablonun tamamını değil edit e uyan kısmını getirir..
,,,
vedatkaba
Lazarus GPL lisansı ile geliştirilen bir proje, yine delpli benzeri bir ide si var
ve dil olarak ta yine obj.pascal kullanıyor..
Benim istediğim sorgu sonucu tümünü listelemek fakat sorgudaki koşula uyan kaydın üzerine konumlanmak..
Fakat burda locate ve find yöntemlerini kullanamıyorum.. Çünkü lazarus desteklemiyor..
-
- Kıdemli Üye
- Mesajlar: 1026
- Kayıt: 11 Şub 2005 02:12
- Konum: İstanbul
Kod: Tümünü seç
table1.first
while (not table1.eof) and (table1.fieldbyname('aranan').value <> edit1.text) do
begin
table1.next
end;
merhaba ;
aynı soruyu 1 kaç hafta evvel bende sormuştum.cevaplardan tam anlamıyla tatmin olmamıştım.
viewtopic.php?t=7625
böyle bi şey gerçekten yapılıyorsa
'SQL ile kayda konumlanmak' çok güzel olur.locate ile olası iş değil çok kayıtta.dünyanın belleğini taksanız nafile
iyi günler...........
aynı soruyu 1 kaç hafta evvel bende sormuştum.cevaplardan tam anlamıyla tatmin olmamıştım.
viewtopic.php?t=7625
böyle bi şey gerçekten yapılıyorsa
'SQL ile kayda konumlanmak' çok güzel olur.locate ile olası iş değil çok kayıtta.dünyanın belleğini taksanız nafile

iyi günler...........
ali,
kayıt sayısı fazla olduğunda tek tek taramak çok uzun zaman alabilir..
o yüzden pek kullanışlı değil..
benim düşündüğüm şöyle bir yöntem, ama nasıl yapılır bilemiyorum..
tablonun önce koşula uyan şekilde sorgulama yaptıktan sonra, bulunan kaydı işaretlemek ve daha sonra koşulsuz tüm kayıtları açacak şekilde sorguyu yenilemek ve daha önce işaretlenen kayda gitmek..
hani aynı tablo üzerinde bookbark falan yapmak gibi..
ama nasıl olur içinden çıkamıyorum..
kayıt sayısı fazla olduğunda tek tek taramak çok uzun zaman alabilir..
o yüzden pek kullanışlı değil..
benim düşündüğüm şöyle bir yöntem, ama nasıl yapılır bilemiyorum..
tablonun önce koşula uyan şekilde sorgulama yaptıktan sonra, bulunan kaydı işaretlemek ve daha sonra koşulsuz tüm kayıtları açacak şekilde sorguyu yenilemek ve daha önce işaretlenen kayda gitmek..
hani aynı tablo üzerinde bookbark falan yapmak gibi..
ama nasıl olur içinden çıkamıyorum..
arkadaşlar sorunumu şu şekilde çözdüm,,
{sorgu1 --> select SOYADI,ADI,... FROM TABLO ORDER BY SOYADI }
{sorgu2 --> select COUNT(*) AS KAYSAY FROM TABLO WHERE ADI<:PR1}
{sorgu1 --> select SOYADI,ADI,... FROM TABLO ORDER BY SOYADI }
{sorgu2 --> select COUNT(*) AS KAYSAY FROM TABLO WHERE ADI<:PR1}
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
var
kayit,ekayit :integer;
begin
ekayit:=sorgu1. RecNo;
sorgu2. Close;
sorgu2. Params. ByNameAsString['PR1']:=edit1. Text;
sorgu2. Open;
kayit:=sorgu2. FieldByName('kaysay'). AsInteger + 1;
sorgu1. MoveBy(kayit-ekayit);
sorgu1. RecNo:=kayit;
end;