nasıl bir sorgu çekebilirim

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
yetnot
Üye
Mesajlar: 27
Kayıt: 06 Ağu 2006 01:38

nasıl bir sorgu çekebilirim

Mesaj gönderen yetnot »

select * from yeni1 where yeni1.deneme like 'i%'

i=1,2,3, ... ,n

Arkadaşar yeni1 diye bir tablom var ve deneme diye bu tabloaya ait bir alan var... Orada gördüğünüz ' i ' harfi ile oranın i ye bağlı değiştiğini anlatmaya çalıştım..mesela i=1 için

select * from yeni1 where yeni1.deneme like '1%'

bu sorugu çalışıyor...Şimdi arkadaşlar sizden yardım istediğim konu ise bunu bir döngü halindemi yapmak daha mantıklı yoksa bunu veritabanında prosedür yazarak yapmak mı mantıklı...

Veri tabanında prosedürü yazabilirim ama oradaki 'i' harfinin yerine ne yazarım bilemiyorum.'i' harfinin yerine 1 yazarsam prosedürde benim istediğim genellemeyi yapamam

İster button isterse prosedür olarak ne sonuç önerirsiniz, farklı da olsa genellemeye bir örnek verebilirmisiniz? Çokşey istememişimdir umarım.

Yardımlarınız için şimdiden teşekkür ederim arkadaşlar....

Yapmaya çalıştığım veritabanındaki dokumanlarımda sıralama hakim, bu dökümanlar txt uzantılı çok fazla var.Karışıklığı ve dokumanların arasında kaybolmamak için Dökümanların içeriğinin en başına numara verdim ve bu numaralar artarak gidiyor(i:=i+1) ...Yardımlarınızın sonucunda sorgu ile sıra numarası en son olan dökümanı bulacağım inşallah:D
Kullanıcı avatarı
armadillo
Üye
Mesajlar: 67
Kayıt: 07 Tem 2005 01:16
Konum: Antalya

Mesaj gönderen armadillo »

forumdan anladığım kadarı ile Sp lerin performası daha iyi tabiki bu VT nin tasarımınada bağlı
execute statement konusuna makaleler bölümünden bir bak derim. Benzer bir VT yapısı bende mevcut olmadığı için deneyemiyorum. Kafam takılanda eğer SP ile yaparsan döngü kullanarak çıkan sonuçları nasıl birleştireceğin ama belirli bir anda sadece bir değişkene göre kullanacak isen sanırım aşağıdaki kod yardımcı olabilir.

Kod: Tümünü seç

create procedure sp_adi (
degisken_adı integer)
as 
begin
execute statement 'select * from yeni1 where yeni1.deneme like'''||degisken_adi||'%' 
suspend; 
end
Kodlamada hatalar olabilir. ' işaretleri ve satır sonu işaretinde(;) kodu test edemedim.
Arama Özelliklerinden Maksimum Yararlanın Sorularınıza Hızlı Cevap Bulun

Ben Acemi Birisiyim Hatalarım İçin Hoş Görünüze Sığınıyorum. Teşekkürler
yetnot
Üye
Mesajlar: 27
Kayıt: 06 Ağu 2006 01:38

Mesaj gönderen yetnot »

Ben farklı bir algoritma kullanarak çözdüm ama bu problem başka zamanda karşıma çıkabilirdi...ARMADILLO sen tam benim istediğim sonucu vermişsin, verdiğin kodu inceledim denemedim ama bu şekilde çalışacaktır...bir döngünün içerisinde bu SP çalıştıra bilir ve sorumdaki genellemeyi yapabilirim... Seri ve net bir cevab olmuş tekrardan teşekkür ederim...

Böyle genellemelere farklı yaklaşımı olan arkadaşların cevablarını bekliyorum...Armadillo arkadaşımın SP sine karşılık ne önerebilirsiniz?
Kullanıcı avatarı
armadillo
Üye
Mesajlar: 67
Kayıt: 07 Tem 2005 01:16
Konum: Antalya

Mesaj gönderen armadillo »

sorgu ile sıra numarası en son olan dökümanı bulacağım
buradaki değeri ilgili alanın max değerini hesaplayarak ulaşamıyormusun?

atıyorum :

Kod: Tümünü seç

select 'almak_istediğin_alanadi' from yeni1 where yeni1.deneme= (select max(deneme) from yeni1)
Arama Özelliklerinden Maksimum Yararlanın Sorularınıza Hızlı Cevap Bulun

Ben Acemi Birisiyim Hatalarım İçin Hoş Görünüze Sığınıyorum. Teşekkürler
Kullanıcı avatarı
armadillo
Üye
Mesajlar: 67
Kayıt: 07 Tem 2005 01:16
Konum: Antalya

Mesaj gönderen armadillo »

Umarım kendi ulaştığın çözümüde bizim ile paylaşırsın? Forumdaki başlığada Çözüldü ama Fikirler bekleniyor şeklinde ekleme yaparsan iyi olur :)
Arama Özelliklerinden Maksimum Yararlanın Sorularınıza Hızlı Cevap Bulun

Ben Acemi Birisiyim Hatalarım İçin Hoş Görünüze Sığınıyorum. Teşekkürler
yetnot
Üye
Mesajlar: 27
Kayıt: 06 Ağu 2006 01:38

Mesaj gönderen yetnot »

- Dosyaların isimlerine numara verdim...1.txt, 2.txt
- sonra bu txt dosyalarının bır dongu ıle varlıgını teyitledim
- Aynı dongu ıle bu dosylardan kactane oldugunu buldum:D

buldugum sonuc benım en son dosyamdı..

- birdahaki veritabanına atacagım dosyalar asla karısmayacak, bu txt dosyalarının içersinde excel ve word dosyalarının içerikeri duruyor...

Excel ve Word dosyalarını txt dosyalarının içerisinde atıp txt dosyasını veritabanına atıyorum, boylece daha hızlı oluyor... Hem biliyorsunuz ki sorgular txt dosyalarına daha rahat gonderılıp cevab alınabılıyor..

Bir şirkete istatistik raporu hazırlayacak paket program yapıyorum...Kendimde İstatistikciyim...İstatistikde çok fazla paremetre olduğundan hiç bir yeri eksik atlayamıyorum çünkü bu domino etkisi yaratıyor...

Kodları paylaşmak isterim ama bukadar dongunun arasından kurtalamaz kimse...Program bittikden sonra programın kaynak kodlarını paylaşmak isterim tabiki....İnşallah bu ay içinde koyarım..BÜTÜNLEME sınavlarım var onlar bittikden sonra....Yardımların için tekrar teşekkür ederim armadillo.
yetnot
Üye
Mesajlar: 27
Kayıt: 06 Ağu 2006 01:38

Bir soru daha sorcam ama:D Konuyu arkadaş kitlemiş

Mesaj gönderen yetnot »

Merhaba arkadaşlar...Veritabanımda Tablo1 adlı Alan var ve BLOB bir alan bu..

Bu alanın içerisinde txt uzantılı dosyanın verisi var...Ben sorgu ile bu alanın

içerisinde düzenleme yapmak istiyorum. Mesela alan içerisinde

'RAPORLA İLGİLİ BELGELER' yazısının geçtiği yerden sonrasını silmek istiyorum

yada sadece between deki gibi 'SUBE' and 'RAPORLA İLGİLİ BELGELER'

kısmını almak istiyorum...Sİzce bunun için nasıl bir sorgu çekebilirim...


Amacım veri tabanında bulunan alanım üzerinden gereksiz yazıları

silmek...Boylece arama yapacagım programda daha az sonuç ekrana gelecek.

Yardımcı olacak arkadaşlarıma şimdiden teşekkür ederim.
Cevapla