SQL SERVER KAYIT EKLEME HATASI

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
yakupk
Üye
Mesajlar: 59
Kayıt: 04 Haz 2004 11:22
Konum: Balıkesir
İletişim:

SQL SERVER KAYIT EKLEME HATASI

Mesaj gönderen yakupk »

merhaba,
sql server 2005 kullanıyorum, network altında kullanılan bir programımız var. ado ile sql servera bağlıyız. fakat kayıt yaparken aşağıdaki hatayı alıyorum birden bire çıkıverdi. delphi 6.0 update2 kuurlmuş vaziyette. forumda aradım sonuca ulaşamadım. Neden kaynaklanır yardımcı olabilirmisiniz?

Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available . No work was done.
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

çoklu işlem hatalar üretti olarak forumda aratınız.. bu pk yokluğunda oluşmuş. benim başıma gelende ise alana sığandan daha buyuk bir sayı koymuştum: bunları tek tek check edin.
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
yakupk
Üye
Mesajlar: 59
Kayıt: 04 Haz 2004 11:22
Konum: Balıkesir
İletişim:

Mesaj gönderen yakupk »

merhaba,
girilen bilgiden kaynaklanmıyor. comboboxdan alındığı için standart dışı bilgi değil. ado tablenin iiçndeki fieldları silip yeniden eklemiştim. add all fields yaptım yani, acaba bundanmı oluyor?
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

benim gördüğüm tüm durumlarda bu mesaj dbye sığmayan birşey post edilince oluşuyordu.
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

Tablodaki alanların tamamına veri yazmıyorsanız . Şimdi hepsini ekleyence belki field numaraları değişmiştir.

adotable.post olarak kayıt etmiyorsan bunları bir kontrol et.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
yakupk
Üye
Mesajlar: 59
Kayıt: 04 Haz 2004 11:22
Konum: Balıkesir
İletişim:

Mesaj gönderen yakupk »

adotable.post olarak kaydediyorum. veri uyuşmazlığından kaynaklandığını sanmıyorum, combobozlardan girildiği için uyumsuzluk ihtimali düşük. kaldı ki daha önce girilmiş aynı bilgiler mevcut.
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

calc. field v.s. varmıydı onlarıda kontrol etmek lazım.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
yakupk
Üye
Mesajlar: 59
Kayıt: 04 Haz 2004 11:22
Konum: Balıkesir
İletişim:

Mesaj gönderen yakupk »

hesaplanan alan bulunmuyordu.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7601
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Genel sebep veri tipi uyumsuzluğundan kaynaklanıyormuş. Mesela not null olan bir alanı null geçmek veya tarih, integer gibi alana string değer girmek gibi.

Bence önce veritabanı toolları ile o bilgisayardan kayıt girmeyi bir deneyin. insert into ile.... Eğer sorun yoksa girdiğiniz verileri bir kontrol edin. Eğer calculated alan vs. yoksa bence alanları table'a eklemeyin.

Ayrıca bu konuda bir kaç tane M$ bug'ı da var. Şu adreste olayı detaylı incelemişler : http://databases.aspfaq.com/database/wh ... error.html

NOT : Bir de öneri, AdoTable sadece uyumluluk için vardır. AdoDataset kullanın.

Kolay gelsin.
yakupk
Üye
Mesajlar: 59
Kayıt: 04 Haz 2004 11:22
Konum: Balıkesir
İletişim:

Mesaj gönderen yakupk »

Adotable yerine adodataset'e geçiş yapınca hata vermedi. bende adodataset e geçiş yaptım. hocam sağolun çok teşekkürler :)
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

Merhaba

ben tembeliğim tutunca table kullanırım. mssql içinde zati sdac kullanıyorum.

ama bu ikisinin farkı nedir merak ettim.

ibdataset tek bir kayıt çekiyordu. buda onun gibi birşeymi.
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
yakupk
Üye
Mesajlar: 59
Kayıt: 04 Haz 2004 11:22
Konum: Balıkesir
İletişim:

Mesaj gönderen yakupk »

mussimsek hocam affınıza sığınarak bir şey daha sorabilirmiyim?
çok kullanıcılı olarak kullanılacak yazılımlarda. bir terminalden girilen bilginin diğerlerine anında yansıması için hangi yöntem kullanılmalıdır? yani bu işin standartı nedir? genelde connectionu kapatıp açma veya requery yapın gibi tavsiyeler gördüm forumda. mesela bir hastane uygulamasında resepsiyonda girilen kaydın doktorun ekranına düşmesi için en güvenli yol nedir? teşekkür ediyorum. iyi çalışmalar.
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

SQL Server 2000 için VC++'de yazılmış bir extended procedure .dll'i vardı ve bu dll açık olan terminallere windows mesajı gönderiyordu. Tabi bunu uzun uzun incelemediğimden doğruluk kontrolü yapmadım. conari buna benzer bir soru sordu diye de hatırlıyorum. Hem SQL 2005 bu tür SQL 2000'e ait extended procedure .dll'lerini destekler mi bilemem. Zamanında basit bir deneme yapmıştım ve bu deneme .dll'im 2005'te çalışmamıştı. Belki atladığım bir konu vardır. Tazeleme ile ilgili önerim, formları açarken ve belli bir tazeleme tuşu ile (bu F5 olabilir :) ) form üzerindeki ADO nesnelerini .requery ile tazelemek olabilir. Bu metot kayıt değişikliklerini çok süratli bir şekilde algılayıp DataSet üzerinde göstermektedir.

Not:VC++'ta yazılmış extended prosedürlerin 2000'de çalışıp 2005'te çalışmaması hakkında bilgisi olan varsa öneri alabilirim :oops: . Aksi halde çok zamanımı alacak bir merak olacak bu :twisted:
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Cevapla