Access BirincilAnahtar

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Access BirincilAnahtar

Mesaj gönderen husonet »

Arkadaşlar Access veri tabanı kullanıyorum 2 adet tablom var bu tablolarımda ilişki kurduğum carikod sutunu var. Bu sutun CariKart Tablomda CariKod Sutununu Birincil indeks olarak tanımladım amacım aynı kodla ikinci kaydın olmaması fakat kayıt işleminde hata veriyor ve program kırılıyor bu olayı nasıl yapacağım konusunda fikir ve yardımlarınızı bekliyorum

Teşekkür Ederim.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7586
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

ya boş bir değer gidiyordur, ya da tabloda mevcut bir değer kaydetmeye çalıştığınızdan izin verilmiyordur. İkisini de kontrol ettirip öyle kaydettirin.

Kolay gelsin.
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Zaten amacım tablodaki mevcut değer kontrolü yapmak.

Ben yazdığım kodu veriyorum

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
begin
    AdoDataset1.First;
    While not AdoDataSet1.Eof Do
    Begin
        if  AdoDataSet1CARIKOD.AsString = DBEdit1.Text Then
        Begin
            ShowMessage('Aynı Kodlu Kart Bulunmaktadır');
            break;
        End
        Else
        Begin
          AdoDataSet1.Post;
        End;
    AdoDataset1.Next;
    End;
end;
Bu kod ilk satırda hata veriyor.

Sizce bu kodun neresinde hata yapıyorum?
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7586
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

böyle çok yavaş olur + uygun bir yol değil.

Bir AdoQuery koyun ve şöyle bir kod yazın.

Kod: Tümünü seç

with AdoQuery1 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT * FROM TABLO_İSMİ WHERE KODU=' + DBEdit1.Text);
    Open;
    if RecordCount > 0 then
      ShowMessage('Kayıt var');
  end;
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Bu seferde değerin parametresinin varsayılan değeri yok gibilerinden mesaj alıyorum.
Kullanıcı avatarı
fahrettin
Admin
Mesajlar: 2619
Kayıt: 11 Haz 2003 10:38
Konum: İstanbul
İletişim:

Mesaj gönderen fahrettin »

Admin'in yazdigi kodu gorunce aklima TQuery ile yasadigim sorun geldi.
TQuery ile kayisayisini alamiyordum. Daha dogrusu Query1.Recordcount her zaman istenilen sonucu vermiyordu kayit oldugu halde sifir verdigi oluyordu.

Yeri gelmisken hem bilgi olsun hem de belki AdoQuery'de de boyle bir sorun varsa uyari olsun dedim. Muhtemelen AdoQuery'de boyle bir sorun olmayabilir de. Ama TQuery'de bu sorunu yasamistim.

Kolay gelsin...
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Ben bu olayı Query ile çözemiyeceğim galiba bir türlü işin içinden çıkamıyorum yalnızca birincil olarak işaretlediğim sutunda sorgulama yaptırıyorum ve program hata veriyor birincil anhtarı kaldırdığım zaman program çalışıyor. Sizce birincil anhtarı koymamın önemi nedir. Şayet önem derecesi büyükse bu işin içerisinden nasıl çıkabilirim.

Ben bu Query işini çözemiyeceğim galiba?:roll: QueryDe hiç bir şekilde çalıştıramıyorum.

Teşekkür Ederim
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Arkadaşlar

Olayı çözdüm

Sql satırında bir hata yapıyormuşum yardımlarınız için teşekkür ederim

Düzeltme yaptığım satırı yazıyorum

Kod: Tümünü seç


SQL.Add('SELECT * FROM CariKart WHERE CariKod   "'+DBEdit1.Text+'"');

Bu şekilde çalışıyor

Off bu günde bitte.
Cevapla