Delphi 10.2 ADO query'de ').AsFloat, ').AsInteger veya ').AsString kullanamıyorum

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
mmg
Üye
Mesajlar: 128
Kayıt: 20 Haz 2014 12:47

Delphi 10.2 ADO query'de ').AsFloat, ').AsInteger veya ').AsString kullanamıyorum

Mesaj gönderen mmg »

Merhabalar,

Delphi 10.2 kullanıyorum ve

Kod: Tümünü seç

dataset.FieldByName('xxx').AsFloat
veya

Kod: Tümünü seç

dataset.FieldByName('xxx').AsInteger
veya

Kod: Tümünü seç

dataset.FieldByName('xxx').AsString
komutu derlenirken hata veriyor. Bu konuyu daha öncede gündeme getirmiştim fakat henüz bir çözüm bulunamadı. Tüm insert ve update işlemlerinde her türlü alan tipi için

Kod: Tümünü seç

dataset.FieldByName('xxx').Value
şeklinde kullanmak zorunda kalıyorum. Konuyla ilgili acil yardımlarınızı rica ediyorum.

Problemi araştırırken aynı probleme yabancı bir forumda da rastladım sizlerle de paylaşıyorum.

https://support.tmssoftware.com/t/field ... rking/2434


Derleme anında verdiği hata :
[dcc32 Error] U_STOKHAREKET.pas(4764): E2003 Undeclared identifier: 'asfloat'

Kod: Tümünü seç

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, Buttons,  Data.DB, Mask, DBCtrls, math,
  ComCtrls, ADODB, OleCtnrs, OleServer, ExcelXP, HusoEdit, Vcl.Grids;
Orj. Kod :

Kod: Tümünü seç

 
  DM1.STOKHAREKET.Close;
  DM1.STOKHAREKET.SQL.Clear;
  DM1.STOKHAREKET.SQL.Add('UPDATE STOKHAREKET SET GIREN_MIKTAR= :vGIREN_MIKTAR');
  DM1.STOKHAREKET.SQL.Add('WHERE STOK_NO=:vSTOK_NO AND DEPO=:vDEPO');
  DM1.STOKHAREKET.Parameters.ParamByName('vSTOK_NO').value:= '101143';
  DM1.STOKHAREKET.Parameters.ParamByName('vDEPO').value:= '03';
  DM1.STOKHAREKET.Parameters.ParamByName('vGIREN_MIKTAR').AsFloat:= 0.0217885;
  DM1.STOKHAREKET.ExecSQL;
ertank
Kıdemli Üye
Mesajlar: 1716
Kayıt: 12 Eyl 2015 12:45

Re: Delphi 10.2 ADO query'de ').AsFloat, ').AsInteger veya ').AsString kullanamıyorum

Mesaj gönderen ertank »

Merhaba,

Kullandığınız ADO bileşenleri .AsFloat, .AsString gibi özelliğe sahip değiller. Bu şekilde kullanmanız mümkün değil. Dolayısıyla çözüm bulmanız da pek mümkün değil.

Benzer sonuca ulaşmak adına yapabileceğiniz en yakın işlem aşağıdaki gibi olabilir

Kod: Tümünü seç

DM1.STOKHAREKET.Parameters.ParamByName('vGIREN_MIKTAR').DataType := ftFloat;
DM1.STOKHAREKET.Parameters.ParamByName('vGIREN_MIKTAR').Value := 0.0217885;
Bu şekilde biz çözüm sizin için kullanılabilir değil ise kullandığınız veri eişim bileşenlerini değiştirmelisiniz. FireDAC ve UniDAC sizin istediğiniz şekilde .AsFloat ve .AsString gibi değer okuma ve atama özelliklerine sahipler.

Şahsen UniDAC tercih ediyorum.
mmg
Üye
Mesajlar: 128
Kayıt: 20 Haz 2014 12:47

Re: Delphi 10.2 ADO query'de ').AsFloat, ').AsInteger veya ').AsString kullanamıyorum

Mesaj gönderen mmg »

ertank çok teşekkür ediyorum, meğer bir sarmala girmişim. Çok teşekkürler.
mmg
Üye
Mesajlar: 128
Kayıt: 20 Haz 2014 12:47

Re: Delphi 10.2 ADO query'de ').AsFloat, ').AsInteger veya ').AsString kullanamıyorum

Mesaj gönderen mmg »

Merhaba,

Kod: Tümünü seç

DM1.STOKHAREKET.Parameters.ParamByName('vGIREN_MIKTAR').DataType := ftFloat;
DM1.STOKHAREKET.Parameters.ParamByName('vGIREN_MIKTAR').Value := 0.0217885;
Şeklinde kullanınca dediğiniz gibi 6 hane ondalık basamak kaydetti. Daha öğreneceğimiz çok şey var. Yinede bu şekilde kullanmak mı daha mantıklı olur yoksa ADO bileşeni yerine farklı bir bileşen mi kullanmalıyım karar veremedim. Teşekkürler.
Cevapla