veritabanındaki bütün varchar alanlar

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
burakb44
Üye
Mesajlar: 131
Kayıt: 11 Mar 2005 03:13

veritabanındaki bütün varchar alanlar

Mesaj gönderen burakb44 »

arkadaşlar merhaba,

firebird olan veritabanımda table'lerdeki bütün varchar alanlarda istisnasız sorgulama yapıp arama kriterine uygun ifadeyi değiştirmek istiyorum. böyle bir işlemi firebirdda yapabilirmiyiz her hangi bir yolu varmı acaba.

iyi çalışmalar
Burak Bitikçi
Malatya
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7586
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

nasıl bir değişiklik yapacaksınız. update işinizi görebilir. tablo1'deki alan1'deki "Ali" leri "veli" yapmak için :

Kod: Tümünü seç

update tablo1
set alan1='veli'
where alan1='Ali'
Kullanıcı avatarı
burakb44
Üye
Mesajlar: 131
Kayıt: 11 Mar 2005 03:13

Mesaj gönderen burakb44 »

zannedersem anlatamadım

ben tek sorgu ile bütün tablolardaki data tipi varchar olan fieldlerin içeriğini değiştirmek istemiştim.
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Firebird sistem tablolarını sorulayarak bu tablolardan, tablo bilgisi, alan adı ve tipi bilgisi, gibi bilgileri sorgulayıp burada kritere uyanı değiştiren bir sorgu yazılabilir.

Firebird sistem tablolarını araştırın.
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Hatta @mrmarman ile eskiden bu çalışmayı yapmışız bkz

viewtopic.php?p=51495
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Böyle bir makale de var.

viewtopic.php?t=9123
Kullanıcı avatarı
burakb44
Üye
Mesajlar: 131
Kayıt: 11 Mar 2005 03:13

Mesaj gönderen burakb44 »

verdiğiniz linklere baktım orada genellikle farklı dialectlerdeki data tiplerinin dönüşümlerinden bahsediyor.

benim istediğim şey fieldlerin içerdiği bilgiler örneğin veritabanında 15 tane table olsun her table'de de farklı sayıda varchar data tipli alan olsun
benim yapmak istediğim bu 15 tabledeki varchar alanlı fieldlerin içeriğine bakacak 'ali' olanları 'veli' şeklinde değiştirecek.

ayrıca ilginiz içinde teşekkrüler
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

burakb44 yazdı:verdiğiniz linklere baktım orada genellikle farklı dialectlerdeki data tiplerinin dönüşümlerinden bahsediyor.
Böyle birşeyden bahsetmiyor, nereden çıkardınız?

Bakın Firebird sistem tablolarından tablo isimlerini çekmeniz lazım. Çektiğiniz bu tablo isimlerini kullanarak bu tabloların alan isimlerini ve tiplerini de bulmanız lazım. Bunları yaptıktan sonra kendi istediğiniz şeyi yapabileceksiniz. Yapmak istediğiniz şey için tek bir SQL komutu yok.

Lütfen gösterdiğim bağlantılardaki yazıları daha dikkatli inceleyin!
Kullanıcı avatarı
sTb
Üye
Mesajlar: 59
Kayıt: 06 Nis 2005 11:13
Konum: Eskişehir

Mesaj gönderen sTb »

S.A.

Kod: Tümünü seç

 for /* karakter olarak 37 girin varchar demek */
  select rdb$relation_fields.rdb$relation_name,rdb$relation_fields.rdb$field_name
  from rdb$fields , rdb$relation_fields
  where rdb$field_type=:karakter and  rdb$relation_name not like '%$%'
        and rdb$field_source=rdb$fields.rdb$field_name
  into :tablead,:fieldad
 do
yukarıdaki sp databsedeki varchar alanların bulunduğu table yi ve field i döndürecektir.

NOT : Oluşturduğunuz tablelerin isimlerinde " $ " kullanmadığınızı varsayarak yazdım. Ben kullanmıyorumda :) . Bir kaç defa test ettim bu şartlar altında sorun çıkmadı. Test etmenizde fayda var.
" Her bildiğin doğru olsun. Ama her doğruyu her yerde söylemek doğru değildir. "
Cevapla