iki boyutlu bir query oluşturmak

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

iki boyutlu bir query oluşturmak

Mesaj gönderen nitro »

merhabalar
delphi 7 firebird kullanıyorum.
projede bi yerde takıldım.
2 boyutlu bir sorgu almam lazım ve bunu bir dbgride bağlamam lazım.
gridde kolonlar tarihler olacak, satırlar ise bilgiler.
mesela

Kod: Tümünü seç

adı         01.03.2007       02.03.2007    03.03.2007   ...... ()
ali            geldi                  geldi            geldi        ..........
veli         geldi                   gelmedi       gelmedi     .............
....
bu tabloda kolonlar sayısı değişken olabilir, istenirse tek gün istenirse 5 gün, 10 gün vs.vs.vs.
bu kolonlar fieldlere tekabul edeceği için, field tanımı ve sayısı değişken olabilmeli.
umarım anlatabilmişimdir.
fikirlerininiz için şimdiden teşekkürler.
saygılarımla
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

- Yapmak istediğin şeye literatürde PIVOT deniyor. Aramalarında sana faydası olsun diye yazıyorum.

- Bunu yapabilmek için dinamik olarak yeni ve geçici bir tablo create ettirmen gerekiyor. Bunu yapmak için de veritabanını analiz edecek kodlara... Şahsen bunu hiç uygulayacak sebebim olmamıştı.

- Kısa sürede bunu sana nasıl açıklarım veya örneklerim bilemiyorum. Çünkü şu an oldukça yoğunum. Elinde hazır örnek olan varsa yazarsa katkım olacaktır.

- Kendim bulurum deyip ingilizcene güveniyorsan sana bir kaç referans verebilirim.

Ref 1: Güzelce Örneklenmiş.
http://groups.google.com.tr/group/inter ... b29c027593

Ref 2: MS-SQL için içerik örneği
http://www.databasejournal.com/features ... _3516331_2

- Başarılar...
Resim
Resim ....Resim
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

yeterince açıklayıcı oldu muharrem abi. ben çok farklı bir yöntemi vardır diye düşündüm.
mevcut durumda demekki şartlara uygun fieldleri olan bir tablo create ettiricez, sonra query ile kayıtları çekip bu tabloya yazıcaz.
ben şöyle anladım olayı kolon kolon verileri yeni tablonun satırlarına işlemek lazım.
böyle bir uygulamayı ben de geliştirme fırsatı bulamadım. ama mevcut projede lazım. şimdilik yöntem kafama takıldı sadece. demekki genel kullanılan yöntem PIVOT denen olaymış.
ilginiz için teşekkürler.
ben ilerde bu konuda bir sorunla karşılaşırsam bu topic'in altına devam ederim.
saygılarımla
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

evet biliyorum, saat geç oldu ama bilirsiniz program yazan insanlar milleti böyle oluyor işte :)
kafama bişey takıldı yazmadan, sormadan geçmeyeyim dedim.
Muharrem abi'nin verdiği linki takip ettim ve olayı anladım.
Ama peki bu iş için tablo oluşturmasak da verileri bir stringgrid'e doldursak ne olur?
Bunun dezavntajı bence şu olur, sonuçları quickreportta gösteremem.
Ama zaten burda da sütun sayısı değişken olacağı için raporlama aracı kullanmak anlamsız olacaktı.
Bir de sağda solda duyduğum memorytable diye bişey var.
Acaba bu memorytable denen nesne beni işimi görecek olan nesnemidir?
herkese iyi geceler.
Kullanıcı avatarı
kadirkurtoglu
Üye
Mesajlar: 748
Kayıt: 22 May 2005 01:20
Konum: Uzakta Görünen Tepeden...

Mesaj gönderen kadirkurtoglu »

memorytable dedikleri sanal tablo dur. stringgrid kullanmaktansa memorytable kullanmanı tavsiye ederim...
Bir mum, yanındaki mumları tutuşturmakla,
ışığında hiç bir şey kaybetmez.

Mevlana

OS win.10, IDE Delphi 10.3, RDBMS Firebird and MSSQL, BROWSER Chrome
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

peki benim amacım bu verileri kullanıcıya göstermek olduğuna göre ve memory table sanal olduğuna göre ben memorytabledaki verileri nasıl gösteririm? Raporlama araçları veya sql sorguları memorytabledan veri çekebilirler mi?
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Buna benzer bişey ben yapmıştım. Kodlar şuanda yanımda değil ama hatırladığım kadarıyla run time da oluşturuyordum query stringe eklemeler yapıyordum. dbgridde gösteriyordum verileri, ona da yine run time da kolon ekliyordum.
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

naile yazdı:Kodlar şuanda yanımda değil ama hatırladığım kadarıyla run time da oluşturuyordum query stringe eklemeler yapıyordum. dbgridde gösteriyordum verileri, ona da yine run time da kolon ekliyordum.
querystringlerin oluşturulması olayına muharrem abi link vererek ışık tutmuştu. ben farklı bişey daha olabilir mi diye düşünüyorum?
Stringgrid veya memorytable vs.vs.
Bu olayı yaptıktan sonra örnekleri ile bir makale hazırlayıp, Allah nasip ederse makale ve ipucu kısmına ekleyeceğim.
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

@nitro StringGrid lerle ne uğraşırsın :wink: MemoryTable ları normal DataSet (Table) gibi DataSource e bağlayıp DBGrid dahil istediğin şekilde kullanabilirsin :idea:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

oy oy oooy, recep abi damardan girdin ya, ben hemen memorytable olayını incelemeye alayım :)
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Geçici işlemler için en ideali MemTable.. İster Grid e bağla ister raporlama yap.. toryy.net e bakabilirsin.. kbmMemTable da beleş tavsiye ederim :wink:
http://www.torry.net/authorsmore.php?id=1709
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
Cevapla