From: Yaşar ÖZANLAĞAN (yasarozanlar@gmail.com)
Date: Thu 11 Jan 2007 - 15:51:08 GMT
SQL ile gidecekseniz
AdoTable1.fields[0].text yerine
ADOTable1.FieldByName('tckimlikno').AsString
Kullanabilirsiniz. Böylece fieldin veri tipini de tanıtmış olursunuz.
Kolay gelsin
_____
From: linux-programlama-bounces@liste.linux.org.tr
[mailto:linux-programlama-bounces@liste.linux.org.tr] On Behalf Of
Mucibirahman İLBUĞA
Sent: Thursday, January 11, 2007 4:42 PM
To: linux-programlama@liste.linux.org.tr
Subject: Re: [Linux-programlama] Firebird SQL ile boş, Null değer kaydetme?
Selamlar,
İlginize teşekkürler. Ancak mantık olarak SQL dışına çıkmak istemediğimden
tüm işlemleri SQL cümleleri ile yapmanın ilerde kompanent değişimlerinde
sorun yaşatmayacağını düşünüyorum. İncelediğim çoğu kaynak da böyle
söylüyor.
Ancak denemelerimde garip bir sonuç ile hallettim:
Gönderdiğim kodda
ADOTable1.fieldvalues['secmen']
yerine
ADOTable1.fields[0].text
değerini kullandığımda boş hücrelerde problem yaşamadım. İşlem halloldu
yani. Ama neden iki komut arasında fark olduğunu anlamadım?
Teşekkürler,
Mucip:)
Özgürlük için http://www.pardus.org.tr/
----- Original Message -----
From: Yaşar <mailto:yasarozanlar@gmail.com> ÖZANLAĞAN
To: linux-programlama@liste.linux.org.tr
Sent: Thursday, January 11, 2007 3:41 PM
Subject: RE: [Linux-programlama] Firebird SQL ile boş, Null değer kaydetme?
Gönderdiğiz örnekte Edit1 nesnesine isim atarken veritabanındaki değer null
ise variant'a çeviremediği için hata veriyor. Örneğinizde daha fazla kod
yazmayı gerektiren bir yol tercih etmişsiniz, bana göre.
Sizin örneğinine bakarak kendi kullandığım mssql deki müşteri dosyasından
firebird deki secmen dosyasına bilgi aktarmak için 2 adotable nesnesi
oluşturdum. SecTB firebird üzerideki yeni tablo, Adotable1 ise mssqldeki
müşteri dosyası. Table nesnesi içerisine fieldleri ekledim ve denedim.
Umarım işinize yarar.
Yaşar ÖZANLAĞAN
procedure TMainF.SpeedButton1Click(Sender: TObject);
begin
DM.ADOTable1.Open;
DM.SecTB.Open;
DM.ADOTable1.First;
while not DM.AdoTable1.Eof do
Begin
DM.SecTB.Insert;
DM.SecTBtckimlikno.Value := DM.ADOTable1MKOD.Value;
DM.SecTBsecmenno.Value := 0;
DM.SecTBad.Value := DM.ADOTable1ISIM.Value;
DM.SecTBsoyad.Value := DM.ADOTable1SOYAD.Value;
DM.SecTBilksoyad.Value := '';
DM.SecTBanaadi.Value := DM.ADOTable1ANAADI.Value;
DM.SecTBbabaadi.Value := DM.ADOTable1BABAADI.Value;
DM.SecTBcinsiyet.Value := '';
DM.SecTBdogumyeri.Value := DM.ADOTable1DYERI.Value;
DM.SecTBnufusil.Value := DM.ADOTable1NFIL.Value;
DM.SecTBnufusilce.Value := DM.ADOTable1NFILCE.Value;
DM.SecTBadresilad.Value := DM.ADOTable1SEHIR.Value;
DM.SecTBadresilcead.Value := DM.ADOTable1ILCE.Value;
DM.SecTBadresmuhtarad.Value := '';
DM.SecTBadrescaddesokakad.Value := DM.ADOTable1ADRES.Value;
DM.SecTBadreskapino.Value := '';
DM.SecTBadresdaireno.Value := '';
DM.SecTBadresapt.Value := '';
DM.SecTB.Post;
Edit1.Text:= DM.ADOTable1UNVAN.Value;
application.ProcessMessages;
DM.AdoTable1.Next;
End;
DM.ADOTable1.Close;
DM.SecTB.Close;
end;
_____
From: linux-programlama-bounces@liste.linux.org.tr
[mailto:linux-programlama-bounces@liste.linux.org.tr] On Behalf Of
Mucibirahman İLBUĞA
Sent: Wednesday, January 10, 2007 2:09 PM
To: linux-programlama
Subject: [Linux-programlama] Firebird SQL ile boş, Null değer kaydetme?
Selamlar,
Win üzerinde Access ile tutulan verileri Firebird 1.5 üzerine Delphi ile
aktarmaya çalışıyorum. Ancak garip bir durum var:
Aşağıdaki kodda kaynak alan mesela "KapiNo" boş ise ;
"Could not convert variant of type (null) into type (string)"
Hatası alıyorum... ADO, alanın içeriği boş ise Null dönderiyor anlaşılan. Bu
sorunu SQL içerisinden halledebilir miyiz? Yoksa Delphide "if null" gibi bir
çözüm mü yapmalıyız?
Teşekkürler,
Mucip:)
Özgürlük için http://www.pardus.org.tr/
****************************************************************
procedure TForm1.Button3Click(Sender: TObject);
begin
AdoTable1.First;
while not AdoTable1.Eof do
Begin
IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.add('Insert into Secmen(TCKimlikNo,SecmenNo,Ad,Soyad,');
IBQuery1.SQL.add('IlkSoyad,AnaAdi,BabaAdi,Cinsiyet,DogumYeri,');
{DogumTarihi,}
IBQuery1.SQL.add('NufusIl,NufusIlce,AdresIlAd,AdresIlceAd,AdresMuhtarAd,Adre
sCaddeSokakAd,KapiNo,DaireNo,Bolge) values ');
IBQuery1.SQL.add('(''' + ADOTable1.FieldValues['TCKimlikNo'] + ''', ');
IBQuery1.SQL.add('''' + ADOTable1.FieldValues['SecmenNo'] + ''', ');
IBQuery1.SQL.add('''' + ADOTable1.FieldValues['Ad'] + ''', ');
IBQuery1.SQL.add('''' + ADOTable1.FieldValues['SoyAd'] + ''', ');
IBQuery1.SQL.add('''' + ADOTable1.FieldValues['IlkSoyAd'] + ''', ');
IBQuery1.SQL.add('''' + ADOTable1.FieldValues['AnaAdi'] + ''', ');
IBQuery1.SQL.add('''' + ADOTable1.FieldValues['BabaAdi'] + ''', ');
IBQuery1.SQL.add('''' + ADOTable1.FieldValues['Cinsiyet'] + ''', ');
IBQuery1.SQL.add('''' + ADOTable1.FieldValues['DogumYeri'] + ''', ');
IBQuery1.SQL.add('''' + ADOTable1.FieldValues['NufusIl'] + ''', ');
IBQuery1.SQL.add('''' + ADOTable1.FieldValues['NufusIlce'] + ''', ');
IBQuery1.SQL.add('''' + ADOTable1.FieldValues['AdresIlAd'] + ''', ');
IBQuery1.SQL.add('''' + ADOTable1.FieldValues['AdresIlceAd'] + ''', ');
IBQuery1.SQL.add('''' + ADOTable1.FieldValues['AdresMuhtarAd'] + ''', ');
IBQuery1.SQL.add('''' + ADOTable1.FieldValues['AdresCaddeSokakAd'] + ''',
');
IBQuery1.SQL.add('''' + ADOTable1.FieldValues['KapiNo'] + ''', ');
IBQuery1.SQL.add('''' + ADOTable1.FieldValues['DaireNo'] + ''', ');
IBQuery1.SQL.add('''TEST'');');
IBQuery1.Prepare;
IBQuery1.ExecSQL;
Edit1.Text:= ADOTable1.FieldValues['No'];
application.ProcessMessages;
AdoTable1.Next;
End;
IBDataset1.Close;
IBDataset1.Open;
//ADOTable1.FieldValues['HareketFisNo']
end;
****************************************************************
_____
_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama