sql'de max fonksiyonu kullanımı

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
Kullanıcı avatarı
yokname
Üye
Mesajlar: 77
Kayıt: 17 Nis 2005 08:16
Konum: izmir

sql'de max fonksiyonu kullanımı

Mesaj gönderen yokname »

Merhaba arkadaşlar bir sorunum var

Kod: Tümünü seç

insert into meslek (m_no,meslek)values(max(m_no)+1,aaaa); 
bu mantıkla autoinc alan yapmaya çalışıyorum ama

Kod: Tümünü seç

Invalid aggregate reference 
hatası veriyor.
Doğru yazımını bulamadım.
Şimdiden teşekkür ederim...
Ali Erdoğan
Kıdemli Üye
Mesajlar: 1026
Kayıt: 11 Şub 2005 02:12
Konum: İstanbul

Re: sql'de max fonksiyonu kullanımı

Mesaj gönderen Ali Erdoğan »

Kod: Tümünü seç

insert into meslek (m_no,meslek)values(select max(m_no)+1 as enbuyuk from meslek,'aaaa'); 
Çalışırmı bilmiyorum ancak çalışıyorsa böyle bir yazım uygundur. :)
Kullanıcı avatarı
yokname
Üye
Mesajlar: 77
Kayıt: 17 Nis 2005 08:16
Konum: izmir

Mesaj gönderen yokname »

Direk sql çalıştı ama delphide çalışmadı. kodlar:

Kod: Tümünü seç

with dm.meslekq do
begin
try
close;
sql.clear;
sql.add('insert into meslek (m_no,meslek)values((select max(m_no)+1 from meslek),:meslek)');
ParamByName('meslek').AsString:=Edit2.text;
ExecSQL;
finally
label3.caption:='Kayıt Eklendi'
end; 
primary key hatası verdi...
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Selamlar,

Hangi SQL VT Kullanıyorsunuz?

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Kullanıcı avatarı
yokname
Üye
Mesajlar: 77
Kayıt: 17 Nis 2005 08:16
Konum: izmir

Mesaj gönderen yokname »

interbase kullanıyorum...
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Selamlar,

1. Önerim, O zaman Generator kullanın,
2. Önerim PrimaryKey hatası alıyorsanız, kayıtlarda çiftleme (Yani bir başka biçimde PrimaryKey olarak belirlediğiniz alan tekrar eden bir bilgi içeriyor demektir. Bu sebeple Primary Key alan veya alanlarınızı gözden geçirin.

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Kullanıcı avatarı
yokname
Üye
Mesajlar: 77
Kayıt: 17 Nis 2005 08:16
Konum: izmir

Mesaj gönderen yokname »

Bunu generator yada procedure ilede yapabilirim ama boyle yapmam gerek mantık doğru görünüyor sql çalışıyor ama delphide hata veriyor.
Ali Erdoğan
Kıdemli Üye
Mesajlar: 1026
Kayıt: 11 Şub 2005 02:12
Konum: İstanbul

Mesaj gönderen Ali Erdoğan »

primery key ne hatası veriyor?Null olduğu için mi?Tekrar ettiği için mi?

Generator neden kullanmıyorsun?
Kullanıcı avatarı
yokname
Üye
Mesajlar: 77
Kayıt: 17 Nis 2005 08:16
Konum: izmir

Mesaj gönderen yokname »

Tekrar Hatası veriyor arkadaşım.
generator kullanmamın sebebide bu benim sene sonu ödevim mantığı kavrayabilmemiz için boyle yapmamız gerekiyormuş.Ondan değiştiremiyorum.kayıt eklerken max numaranın bir üstünü eklemem gerekiyor.
Burada kitlendim kaldım...
Uğur1982
Üye
Mesajlar: 383
Kayıt: 11 Mar 2005 03:18
Konum: İzmir

Mesaj gönderen Uğur1982 »

merhaba;

Bu kod çalışması lazım;

Kod: Tümünü seç

(select max(m_no)+1 from meslek)
Null sorunu var diyorsan;

Kod: Tümünü seç

(select max(m_no)+1 from meslek where m_no is not null)
dersin olur biter :D

iyi akşamlar...
Cevapla