Merhaba ustalar.
delphi ve sql 2012 ile çalışıyorum. bir tablomda saat alanı var ve tipi time(0) fakat gridde görüntülemeye çalıştığımda hata alıyorum.
datetime, smalldatetime, date, ve her türlü tipe dönüştürdüğümde hata almıyorum ama time(0) veya time(7) yapınca hata veriyor ve saat alanını gridde görüntülemiyor. mssql 2012 dede sadece time yok yani illa time(0) ile time(7) arasında olmalı.
Microsoft SQL forumuna yazdım delphi sqm deki time(0) tipini desteklemiyor dediler.
Kaçırdığım bir nokta mı var? Yani time(0) kullanmanın ve gridde görüntülemenin bir yolu varmı?
Aslında alanı datetime yapıyorum ve delphi tarafındada alanın displayformat ve edit format ı nı hh:nn:ss yapıyorum ve işimi görüyor gibi ama orjinali varken böyle bir yöntem kullanmak istemiyorum...
Bir çözüm var mı acaba?
SQL veritabanı time(0) sorunu
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: SQL veritabanı time(0) sorunu
Belki kullandığın delphi versiyonundaki bileşen desteklemiyordur. Getirirken "qry.FieldByName('Field').AsString;" kullanırsan getirebilir diye düşünüyorum.
Re: SQL veritabanı time(0) sorunu
Kullandığın grid veya veri getirdiğin query/table ile ilgili sorun olabilir mi? Ben MSSQL Express 2014 ile "time(0)" test ettiğimde hata mesajı almadım. Normal çalıştı. Tablo içindeki saat değerlerini de gösterdi.
- sabanakman
- Kıdemli Üye
- Mesajlar: 3081
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: SQL veritabanı time(0) sorunu
Hata ne ola ki acep? Belki sadece bölgesel ayarlara dayalı bir sıkıntı olabilir :s .
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
Re: SQL veritabanı time(0) sorunu
Bende SQL2012 var bende bi yerde bir karışıklık vardır diye yeni bir veritabanı ve tablo oluşturdum XE2 ve XE8 de denedim. AdoQuery.Fieldbyname('saat').asstring yaptığımda saat alanı bulunamadı gibi bir hata veriyor anlamadım gitti.ertank yazdı:Kullandığın grid veya veri getirdiğin query/table ile ilgili sorun olabilir mi? Ben MSSQL Express 2014 ile "time(0)" test ettiğimde hata mesajı almadım. Normal çalıştı. Tablo içindeki saat değerlerini de gösterdi.
Re: SQL veritabanı time(0) sorunu
(1) SQL cümlesinde saat alanınızı string cast edip öyle deneyin.
(2) Olmaz ya denemeye değer, sonuna da "AS" ifadesi ile yeni bir isim verin öyle deneyin.
(2) Olmaz ya denemeye değer, sonuna da "AS" ifadesi ile yeni bir isim verin öyle deneyin.
Re: SQL veritabanı time(0) sorunu
ABi öyle yapınca işin içinden çıkamıyorum. Çorba olup gidiyor. Orjinal bir çözüm yok galiba.mrmarman yazdı:(1) SQL cümlesinde saat alanınızı string cast edip öyle deneyin.
(2) Olmaz ya denemeye değer, sonuna da "AS" ifadesi ile yeni bir isim verin öyle deneyin.
Re: SQL veritabanı time(0) sorunu
SQL Server'daki her veri tipi maalesef Delphi tarafında implemente edilmemiştir. Dolayısı ile en yakın veri tipine dönüştürülür. TDataSet.InternalOpen'dan TFieldDefs.CreateFieldComponent'e kadar inceleyerek detaylara ulaşabilirsiniz. Bire bir map edilmemiş field türleri için Delphi tarafında değişik field türleri ile karşılaşabilirsiniz. Örneğin Time veri türü için Delphi tarafında TWideStringField türünü gözlemleyebilirsiniz. Bu sorunu aşmak için ya SQL Server tarafında veriyi çektiğiniz tablonuzdaki field yapısını değiştireceksiniz, ya bu tablodan data çeken SQL ifadenizde bir conversion işlemi gerçekleştireceksiniz ya da SDAC gibi bir üçüncü parti bileşen seti kullanacaksınız.