husodbedit hata veridi?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
y.kulac
Üye
Mesajlar: 276
Kayıt: 08 Kas 2003 12:03
Konum: serdivan/sakarya

husodbedit hata veridi?

Mesaj gönderen y.kulac »

husodbedit companentini kurdum. table bağlantılarını da yaptım.
decimals değerini 4 yaptım. tableyi edit moduna geçirdim. 0,0401 sayısını
yazmak istedim ama husoedit hata verdi. hata şöyle:

this is companent for asstring, asfloat, ascurrnecy

veri tabanı paradox, alanı numeric (N) olarak belirlemiştim.
acaba hata bundan mıdır)
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Hata mesajı bileşenin desteklediği alan tiplerini belirtmektedir. Ayrıca Number tipi database tasarımı sırasında decimalsı standart bildiğim kadarıyla yani 2 olarak gelir ve değiştirilemez. Paradox kullanmıyorum yanlışım varsa düzeltirseniz sevinirim.

Kolay Gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
y.kulac
Üye
Mesajlar: 276
Kayıt: 08 Kas 2003 12:03
Konum: serdivan/sakarya

Mesaj gönderen y.kulac »

huso hocam öncelikle ellerinize sağlık. çok güzel bir companent olmuş
bir maaş programı yazıyorum kendime. yeni türk lirasına göre. sizin husodbedit
tam benim istediğim şekilde. paradox ta tablo tanımlarken float diye bir
seçenek yok sanırım. yada ben bilmiyorum. bundan dolayı alanı N diye
tanımladım. normalde işlem yaparken hiçbir hata yok gibi görünüyor.
ilgili form sayfasından çıkarken yukarıdaki hatayı veriyor. denedim alanı
string yaptım. ama yine aynı hatayı verdi.
neler önerirsiniz. iyi çalışmalar
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Veritabanını değiştirmenizi öneririm.


Kolay Gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
y.kulac
Üye
Mesajlar: 276
Kayıt: 08 Kas 2003 12:03
Konum: serdivan/sakarya

Mesaj gönderen y.kulac »

huso hocam intarbase de denedim. ama aynı hata mesajını verdi
anlamadım gitti. kompanenti kurarkrn hata yapmış olabilirmiyim.
ama hata olsa kompanent kurulmazdı sanırım. nerede hata yaptım anlamadım.
Kullanıcı avatarı
y.kulac
Üye
Mesajlar: 276
Kayıt: 08 Kas 2003 12:03
Konum: serdivan/sakarya

Mesaj gönderen y.kulac »

huso hocam hatanın tam olarak hangi aşamada gerçekleştiğini buldum.
veritabanıyla ilgili değil sanırım. husodbedit çok güzel çalışıyor.girilen bilgiyi
kaydediyor. lakin table.close; komutunu verince kaç tane husodbedit var ise onların sayısı kadar "this is companent for asstring, asfloat, ascurrnecy"
hatasını veriyor. acaba tabloyu kapatmadan önce farklı bir işlem mi yapmalıyım.
iyi çalışmalar diler saygılar sunarım.
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Hata yaratan kod aşağıda sebebine gelince Database bağlantısını HusoDbEdit ler le kestiğin için alan tipini bulamamakta ve ardından hata msj ını vermekte. Bu bir Aslında Bug ! Çok teşekkür ederim hemen düzenlemeyi yapıyorum. Bileşenin güncellemesi biraz zaman alabilir sene sonu olduğu için çok yoğunum eve yeni geldim :(
Hatalı Kod

Kod: Tümünü seç

procedure THusoDBEdit.DataLinkDataChange(Sender: TObject);
begin
    try
        if FDataLink.Field.DataType = ftInteger Then
        Begin
            HusoDBEditType := CurrencyType;
            if FDataLink.Field = nil then
            Begin
                SetDecimals(FDecimals);
            End
            else
            if FControl = False Then
                SetTextAsFloat1(FDataLink.Field.AsInteger)
            Else
            Begin
                TextAsFloat := FDataLink.Field.AsInteger;
                CurrWrite(FCurr);
            End;
        End
        Else
        if (FDataLink.Field.DataType = ftFloat) or (FDataLink.Field.DataType = ftCurrency) Then
        Begin
            HusoDBEditType := CurrencyType;
            if FDataLink.Field = nil then
            Begin
                SetDecimals(FDecimals);
            End
            else
               if FControl = False Then
                begin
                    SetTextAsFloat1(FDataLink.Field.AsFloat);
                End
                Else
                Begin
                    TextAsFloat := FDataLink.Field.AsFloat;
                    CurrWrite(FCurr);
                End;
            End
            Else
            if (FDataLink.Field.DataType in [ftString, ftWideString, ftMemo]) Then
            Begin
                HusoDBEditType := TextType;
                if FDataLink.Field = nil then
                  Text := ''
                else
                  Text := FDataLink.Field.AsString;
            End
            Else
            Begin
                FDataLink.FieldName := '';
                Text := 'Error Field';
            End;
    Except
        ShowMessage('HUSONET' + Chr(13) + 'This is Component for AsString, AsFloat, AsCurrency and AsInteger value');
    End;
end;
Düzenlenmiş Hali
Manuel olarak Bileşenin hatalı Kaynak kodunu düzenle.

Kod: Tümünü seç

procedure THusoDBEdit.DataLinkDataChange(Sender: TObject);
begin
   if not FDataLink.Active = False Then
   Begin
    try
        if FDataLink.Field.DataType = ftInteger Then
        Begin
            HusoDBEditType := CurrencyType;
            if FDataLink.Field = nil then
            Begin
                SetDecimals(FDecimals);
            End
            else
            if FControl = False Then
                SetTextAsFloat1(FDataLink.Field.AsInteger)
            Else
            Begin
                TextAsFloat := FDataLink.Field.AsInteger;
                CurrWrite(FCurr);
            End;
        End
        Else
        if (FDataLink.Field.DataType = ftFloat) or (FDataLink.Field.DataType = ftCurrency) Then
        Begin
            HusoDBEditType := CurrencyType;
            if FDataLink.Field = nil then
            Begin
                SetDecimals(FDecimals);
            End
            else
               if FControl = False Then
                begin
                    SetTextAsFloat1(FDataLink.Field.AsFloat);
                End
                Else
                Begin
                    TextAsFloat := FDataLink.Field.AsFloat;
                    CurrWrite(FCurr);
                End;
            End
            Else
            if (FDataLink.Field.DataType in [ftString, ftWideString, ftMemo]) Then
            Begin
                HusoDBEditType := TextType;
                if FDataLink.Field = nil then
                  Text := ''
                else
                  Text := FDataLink.Field.AsString;
            End
            Else
            Begin
                FDataLink.FieldName := '';
                Text := 'Error Field';
            End;
    Except
        ShowMessage('HUSONET' + Chr(13) + 'This is Component for AsString, AsFloat, AsCurrency and AsInteger value');
    End;
   End;
end;
Not : Bu hatayı HusoDbEdit başlığının altına da atarsan takip etmem kolay olur.

Kolay Gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
sako
Üye
Mesajlar: 473
Kayıt: 11 Haz 2003 02:40
Konum: ERZURUM

Mesaj gönderen sako »

tableyi edit moduna getirmediğim sürece husodbedit e kayıt giremiyorum. Bunun sebebi nedir vaba.

kolay gelsin.
DOĞUNUN SINIR TAŞI ERZURUM'UN DADAŞ'I
EFE'Sİ VAR İZMİR'İN EĞİLMEZ TÜRK' ÜN BAŞI
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

sako yazdı:tableyi edit moduna getirmediğim sürece husodbedit e kayıt giremiyorum. Bunun sebebi nedir vaba.

kolay gelsin.
Bunu yapmamın sebebi kontrolü elde tutmak istememdendir. Table insert veya edit modda olmadan giriş izni vermeyecektir. Kaynak kodlarına bakarsan gerekli kısıtlamayı kaldıra bilirsin.

Kolay Gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
gercek_16
Üye
Mesajlar: 108
Kayıt: 19 Haz 2005 02:42
Konum: mersin

Mesaj gönderen gercek_16 »

Bunu yapmamın sebebi kontrolü elde tutmak istememdendir. Table insert veya edit modda olmadan giriş izni vermeyecektir. Kaynak kodlarına bakarsan gerekli kısıtlamayı kaldıra bilirsin.

Kolay Gelsin...[/quote]

bu kısıtlamayı nasıl kaldırabilirim, bulamadım :cry:
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Key eventlerini bir incele

Kolay Gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
gercek_16
Üye
Mesajlar: 108
Kayıt: 19 Haz 2005 02:42
Konum: mersin

Mesaj gönderen gercek_16 »

evet hüseyin hocam buldum, çok teşekkür ederim, size ne kadar teşekkür etsek azdır, ufkunuz açık olsun.
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

merhaba,

@Hüseyin ustam, husodbedit kullanıyorum ve tarihsel alanları veriler gelmiyor. program tasarım halinde iken run yaparsam ilgili form açılıp dataset activ hale gelince kilitleniyor ve access hatası alıyorum. eğer exe den direkt çalıştırırsam da form açılıp dataset active hale gelince tarihsel dbeditler içinde

Kod: Tümünü seç

Lacing quality field
yazılıl oluyor. tarihsel alanlarımı dataset te field ayarlarında editmask ile 99.99.0000;_ olarak ayarlıyorum. kullanıcının giriş kolaylığı için. bu durumu nasıl düzeltmem gerekli bilemedim. decimal ayarını 0 yaptım yine olmadı. başka ayar varmı bilmiyorum.

delphi7 ve fb kullanıyorum.

teşekkürler saygılarımla
kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

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

Mesaj gönderen husonet »

Hocam sanırım tarihsel alanlar unutkanlığıma geldi :oops: aşağıda ki kod kısımlarında table daki alan tipi tanıma işlemi yapıyor ;) o kısıma tarihsel alanlarda veri tipini tanımlaman gerekecek.

Kod: Tümünü seç

            if (FDataLink.Field.DataType in [ftString, ftWideString, ftMemo]) Then 
            Begin 
                HusoDBEditType := TextType; 
                if FDataLink.Field = nil then 
                  Text := '' 
                else 
                  Text := FDataLink.Field.AsString; 
            End 
Kolay gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

merhaba @Hüseyin ustam,

acemiliğim aşikardır. belirttiğin yeri buldum ve şöyle bir ekleme yaptım (şimdiye kadar böyle bir tecrübem olmamıştı);

Kod: Tümünü seç

End;
        end
        else
        if (FDataLink.Field.DataType = ftdatetime) or (FDataLink.Field.DataType = ftdate) Then
            Begin
                HusoDBEditType := dateType;
                if FDataLink.Field = nil then
                  date := ''
                else
                  date := FDataLink.Field.AsDateTime;
            End
            Else
            Begin
                FDataLink.FieldName := '';
                text := 'Error Field';
    Except
        Text := 'Lacking Quality Field';
       // ShowMessage('HUSONET' + Chr(13) + 'This is Component for AsString, AsFloat, AsCurrency and AsInteger value');
    End;
   End
   else
        Text :='';
end;

bilgisiz ve acemice bir şey olduğunu biliyorum. delphi tarafına comp ekleme yaptığımda instal esnasında yukarıda verdiğim kodun ilk end else satırının end kelimesinde hata verdi ve alt tarafa hatayı baktığımda except or finally yazıyordu. anladımki end leri yerinde kullanamadım. şimdilik çalışmamda tarihsel alanlar için delphinin dbedit ini kullanıyorum diğerleri ise husodbedit. sorunu aşınca tüm bu yeni çalışmam husodbedit ve husoedit lerden oluşacak.

teşekkür ve saygılarımla
kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Cevapla