FireDAC + PostgreSQL8.4(UTF8)
FireDAC + PostgreSQL9.2(UTF8) の FDQueryでの文字の扱い
PostgreSQL8.4 は AsWideString の記述が必要
FDQuery1.ParamByName('xxx').AsWideString := '漢字';
Firebird MySQL Oracle ではAsStringのパラメータでも、OK
------------------------------------------------------------------------
FDTableの場合は、AsStringのパラメータでも、OK
FDTable1.FieldByName('xxx').AsString
------------------------------------------------------------------------
数値 DECIMAL/NUMERIC に関して
INSERT SELECT UPDATE DELETE をテスト
sqlstmt:='CREATE TABLE TEST_TBL '+
'('+
'TSNO INTEGER not null,'+
'TSNAME VARChar(30) ,'+
'TSQTY DECIMAL(14,2) Default 0 ,'+
'primary key(TSNO)'+
')';
---------------------------------------------------------------------------------
FDQueryでは、Insert / Update で DECIMALを xx.AsCurrencyで代入しようとすると、エラーになります
8.4の FireDAC Monitorのログ
ERROR: 列"tsqty"は型numericですが、式は0).#0f=""] [Status=7]
9.2の FireDAC Monitorのログ
Var [N=2, Name="TSQTY", Type=money, Size=0, Data(0)=111.11]
---------------------------------------------------------------------------------
FDTableとdbExpress Over ODBCでは、正しく動作しました。
---------------------------------------------------------------------------------
dbExpress Over ODBCでは、DBGRIDを動作させることがも、できませんでした。
テスト環境は ローカル CentOS6.4 32bit と KAGOYA PostgreSQLプランというレンタルサーバーのプランとの2つの環境で、テストしても同様でした。
2013年10月23日
PostgreSQL FDQuery 文字 数値
posted by a23 at 18:40| Comment(0)
| FireDAC
2013年10月21日
FireDAC 文字化け
FireDAC 文字化け
dbExpresで追加したデータを、FireDACで参照すると漢字が、文字化けすると現象に悩まされていたのですが、原因が解決しました。
FireDAC 文字化けで、ググってみると、「データ型のマッピングを変更する」などに、たどり着いて悩んでいたのですが、たんに、キャラセットのパラメータの記述が、まちがっていました。
Firebird2.5.2 embedでの接続例です
----------------------------------------------------------------------
dbExpress
SQLConnection1.Params.Values['Database'] :=GetCurrentDir+'\'+'testdbfdb';
SQLConnection1.Params.Values['User_Name'] :='SYSDBA';
SQLConnection1.Params.Values['Password'] :='masterkey';
SQLConnection1.Params.Values['ServerCharSet']:='utf8';
----------------------------------------------------------------------
FireDAC
FDConnection1.Params.Values['Database'] :=GetCurrentDir+'\'+'testdbfdb';
FDConnection1.Params.Values['User_Name'] :='SYSDBA';
FDConnection1.Params.Values['Password'] :='masterkey';
//FDConnection1.Params.Values['ServerCharSet']:='utf8'; <-ここのキャラセットのパラメータがdbExpressとFireDACで違う
FDConnection1.Params.Values['CharacterSet']:='utf8'; <-こちらが正解
----------------------------------------------------------------------
dbExpressよりコピーして、そのまま使用してしたのと、Firebird1.5.6 でも、テストしておりまして、この状態でも、文字化けを起こさず、同一コードで、順に、Firebird2.5.2、 MySQL5.6、 ORACLE XEで、文字化けの現象となってしまっていたので、悩んでおりました。
以下が、文字化けの現象でした。
1.FireDAC

2.dbExpress

3.Oracle SQL deverover

ご指摘いただきました、山本隆様に、感謝いたします。
dbExpresで追加したデータを、FireDACで参照すると漢字が、文字化けすると現象に悩まされていたのですが、原因が解決しました。
FireDAC 文字化けで、ググってみると、「データ型のマッピングを変更する」などに、たどり着いて悩んでいたのですが、たんに、キャラセットのパラメータの記述が、まちがっていました。
Firebird2.5.2 embedでの接続例です
----------------------------------------------------------------------
dbExpress
SQLConnection1.Params.Values['Database'] :=GetCurrentDir+'\'+'testdbfdb';
SQLConnection1.Params.Values['User_Name'] :='SYSDBA';
SQLConnection1.Params.Values['Password'] :='masterkey';
SQLConnection1.Params.Values['ServerCharSet']:='utf8';
----------------------------------------------------------------------
FireDAC
FDConnection1.Params.Values['Database'] :=GetCurrentDir+'\'+'testdbfdb';
FDConnection1.Params.Values['User_Name'] :='SYSDBA';
FDConnection1.Params.Values['Password'] :='masterkey';
//FDConnection1.Params.Values['ServerCharSet']:='utf8'; <-ここのキャラセットのパラメータがdbExpressとFireDACで違う
FDConnection1.Params.Values['CharacterSet']:='utf8'; <-こちらが正解
----------------------------------------------------------------------
dbExpressよりコピーして、そのまま使用してしたのと、Firebird1.5.6 でも、テストしておりまして、この状態でも、文字化けを起こさず、同一コードで、順に、Firebird2.5.2、 MySQL5.6、 ORACLE XEで、文字化けの現象となってしまっていたので、悩んでおりました。
以下が、文字化けの現象でした。
1.FireDAC

2.dbExpress

3.Oracle SQL deverover

ご指摘いただきました、山本隆様に、感謝いたします。
posted by a23 at 17:56| Comment(0)
| FireDAC
2013年10月15日
FireDAC + DB2
IBM Data Server Driver for ODBC and CLI (CLI Driver) をDownload
例
FDPhysDB2DriverLink1.ODBCAdvanced := 'IGNOREWARNINGS=1';
FDPhysDB2DriverLink1.ODBCDriver := 'IBM DB2 ODBC DRIVER - DB2COPY1';
VendrLIBの指定では、ない?
DB2のクライアントモジュールは、無料でFix Packのページからダウンロード可能になっています。
DB2 Fix Pack 総合トップページ
http://www-01.ibm.com/support/docview.wss?rs=71&uid=swg27007053
例
FDPhysDB2DriverLink1.ODBCAdvanced := 'IGNOREWARNINGS=1';
FDPhysDB2DriverLink1.ODBCDriver := 'IBM DB2 ODBC DRIVER - DB2COPY1';
VendrLIBの指定では、ない?
DB2のクライアントモジュールは、無料でFix Packのページからダウンロード可能になっています。
DB2 Fix Pack 総合トップページ
http://www-01.ibm.com/support/docview.wss?rs=71&uid=swg27007053
posted by a23 at 10:28| Comment(0)
| FireDAC