2013年05月01日

FireDAC Delphi2007で試す

WindowsXP + Delphi2007 ではインストールできない(未サポート??)

Windows7 + Delphi2007 ではOK
注)Delphi2007 は、"December 2007 Update"が適用済みでないといけない

インストールは、下記参照
http://support.embarcadero.com/jp/article/42975

FireDAC_7.0.1.3119 /showide
でインストールIDEバージョンが選択できる。
インストールされているIDE
バージョン以外は、Disenble状態となるので選択できない。


Windows7 + Delphi2007 で作成したプログラムが、特にDllなど必要なく、
Windows2000、WindowsXPでオラクル接続できることを確認。
当然、それぞれの環境に、オラクルクライアントが必要。

DelphiIDE(on Windows7)からはなぜか、オラクルクライアントなくてもつながった。勘違い。。。。?
...more
posted by しんくそふと at 15:48| Comment(0) | TrackBack(0) | おぼえ

2013年06月12日

Administrator アカウント

ローカルセキュリティポリシー
 =>ローカルポリシー
  =>セキュリティオプション
   =>Administrator アカウントの状態
posted by しんくそふと at 20:55| Comment(0) | TrackBack(0) | おぼえ

2013年12月24日

更新クエリ実行件数


TADOQueryでは、ExecSQLのあとに RowsAffected Propertyで更新件数が確認できる。


ExecSQLの戻り値にも返る。
posted by しんくそふと at 15:31| Comment(0) | TrackBack(0) | おぼえ

2014年01月04日

DBGridで列移動不可で列幅変更ができるようにする


標準のDBGridは、列幅変更ができるようにすると列移動もできるようになってしまうオプションしかない。
列移動はできないが、列幅変更だけしたいときの方法。
オリジナルのソースを弄ります。

1)
Vcl.DBGrids.pas(またはDBGrids.pas)を別のフォルダにコピー。

2)
TCustomDBGrid.SetOptions メソッドの以下の行を変更
dgColumnResize がTrueの時の設定処理
      NewGridOptions := NewGridOptions + [goColSizing, goColMoving];
から、goColMovingをコメントアウト
      NewGridOptions := NewGridOptions + [goColSizing{, goColMoving}];
(XE4だと、3965行)

3)
上記ファイルを、オリジナルより先に読むように、path等を設定、または、プロジェクトに追加。

(注意)
元ソースを変えるので、プロジェクト全体が変わる。
同一プロジェクトで画面によっては、列移動も可能にしたいという要望があるときはこの方法はNG。
posted by しんくそふと at 11:28| Comment(0) | TrackBack(0) | おぼえ

2015年01月22日

ローカライズ時注意


TForm(VCL)のScaledプロパティをFalseにする。
でないと、ローカライズ先によっては、フォーム&コンポーネントサイズが変わってしまう。

変わらないコンポーネントもあるので、バランスも崩れる。


#
Delphi2007の多言語対応機能は、2バイトコード=>2バイトコード(例:日本語=>中国語)は、バグっている(報告済み)
XE7は直っているのだろうか?
いろいろ聞くと、ベースは英語で作成して、そこからの展開がベターらしい。英語苦手なんだが(ーー;)。。。


posted by しんくそふと at 10:15| Comment(0) | TrackBack(0) | おぼえ

2015年05月01日

ローカライズ時注意 その2

Delphi2007 ForeDAC TADMemtable(最近のDelphiでは、TFDMemTableに改名) の使用での注意点。

Windows7 英語版 で動かす場合、フィールド名に、2バイト文字を使うとエラーとなる。


Delphi2009以降のUniCode対応版ではもしかしたら大丈夫なのか。未確認。

posted by しんくそふと at 15:03| Comment(0) | TrackBack(0) | おぼえ

2015年05月29日

Frameの Create, Destroy イベント


Frame には、OnCreate/OnDestroyイベントがないが下記のように、constructor/Destroyを定義すれば、同じようなイベントはかける。

-------------------------------------------------------------------------------------
type
  TFrameUnit = class(TFrame)
  private
    { Private declarations }
  public
    { Public declarations }
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
  end;
-------------------------------------------------------------------------------------
ただし、発生タイミングに注意が必要。
Frameのimplementationを下記のように定義。
-------------------------------------------------------------------------------------
constructor TFrameUnit.Create(AOwner: TComponent);
begin
  inherited;
  OutputDebugString(PChar('◎TFrameUnit.Create◎'));
end;
destructor TFrameUnit.Destroy;
begin
  OutputDebugString(PChar('◎TFrameUnit.Destroy◎'));
  inherited;
end;
initialization
  OutputDebugString(PChar('◎initialization◎'));
finalization
  OutputDebugString(PChar('◎finalization◎'));
end.
-------------------------------------------------------------------------------------
Formにも下記のように定義して確認
-------------------------------------------------------------------------------------
procedure TFormUnit.FormCreate(Sender: TObject);
begin
  OutputDebugString(PChar('○TFormUnit.FormCreate○'));
end;
procedure TFormUnit.FormDestroy(Sender: TObject);
begin
  OutputDebugString(PChar('○TFormUnit.FormDestroy○'));
end;
initialization
  OutputDebugString(PChar('○initialization○'));
finalization
  OutputDebugString(PChar('○finalization○'));
end.
-------------------------------------------------------------------------------------

デバッグ出力: ◎initialization◎ プロセス Project1.exe (3656)
デバッグ出力: ○initialization○ プロセス Project1.exe (3656)
デバッグ出力: ◎TFrameUnit.Create◎ プロセス Project1.exe (3656)
デバッグ出力: ○TFormUnit.FormCreate○ プロセス Project1.exe (3656)

デバッグ出力: ○TFormUnit.FormDestroy○ プロセス Project1.exe (3656)
デバッグ出力: ◎TFrameUnit.Destroy◎ プロセス Project1.exe (3656)
デバッグ出力: ○finalization○ プロセス Project1.exe (3656)
デバッグ出力: ◎finalization◎ プロセス Project1.exe (3656)
となる。

posted by しんくそふと at 16:16| Comment(0) | TrackBack(0) | おぼえ

2015年05月30日

Frameの Create, Destroy イベント2

Formにconstructor/destructorを追加して確認

----------------------------------------------------------------------------------------------
constructor TFormUnit.Create(AOwner: TComponent);
begin
  OutputDebugString(PChar('○TFormUnit.Create Before inherited○'));
  inherited;
  OutputDebugString(PChar('○TFormUnit.Create After inherited○'));
end;

destructor TFormUnit.Destroy;
begin
  OutputDebugString(PChar('○TFormUnit.Destroy○'));
  inherited;
end;
----------------------------------------------------------------------------------------------

結果
----------------------------------------------------------------------------------------------
デバッグ出力: ◎initialization◎ プロセス Project1.exe (3000)
デバッグ出力: ○initialization○ プロセス Project1.exe (3000)
デバッグ出力: ○TFormUnit.Create Before inherited○ プロセス Project1.exe (3000)
デバッグ出力: ◎TFrameUnit.Create◎ プロセス Project1.exe (3000)
デバッグ出力: ○TFormUnit.Create After inherited○ プロセス Project1.exe (3000)
デバッグ出力: ○TFormUnit.FormCreate○ プロセス Project1.exe (3000)
----------------------------------------------------------------------------------------------
これは、 Formのプロパティ OldCreateOrder = False (Default) の場合
これを、OldCreateOrder = True にすると
----------------------------------------------------------------------------------------------
デバッグ出力: ◎initialization◎ プロセス Project1.exe (2836)
デバッグ出力: ○initialization○ プロセス Project1.exe (2836)
デバッグ出力: ○TFormUnit.Create Before inherited○ プロセス Project1.exe (2836)
デバッグ出力: ◎TFrameUnit.Create◎ プロセス Project1.exe (2836)
デバッグ出力: ○TFormUnit.FormCreate○ プロセス Project1.exe (2836)
デバッグ出力: ○TFormUnit.Create After inherited○ プロセス Project1.exe (2836)
----------------------------------------------------------------------------------------------
FormCreateのタイミングが変わる。

posted by しんくそふと at 09:47| Comment(0) | TrackBack(0) | おぼえ

2016年05月18日

FireDAC SQLite 設定


TFDConnectionのParamsは、

DriverID=SQLite
Database=C:\Users\*****\Documents\DataBase\UpdateTest1.db
の2件でOK。
Databaseは、データベースファイルをフルパスで指定。

MapRulesは、下記の設定をしておくと便利。

    FormatOptions.MapRules = <
      item
        SourceDataType = dtWideMemo
        TargetDataType = dtWideString
      end>
型定義がTEXTのフィールドをグリッド表示するときに、上記の設定をしておけば、データがきちんと表示させることができる。


SQLite、ちと使いにくい。。。
クエリエディタで、確認した後、デバック実行するとDeadLockがでる。
クエリ確認するとIDE上で、データベースオープンになるのが原因だけど、これどいちいちクエリエディタ使ったと、確認しないといけない。
このデータベースの性質上仕方ないんだけど。。。。他のデータベースに変えようかな。。


posted by しんくそふと at 18:38| Comment(0) | TrackBack(0) | おぼえ

2016年05月31日

FireDAC PostgreSQL

PostgreSQL クライアントに必要なdll
(下記ファイルをパスが通っているところに置くことで特にインストールは不要)

  • libpq.dll
  • ssleay32.dll
  • libeay32.dll
  • libintl-8.dll
  • libiconv-2.dll


PCによっては、「Microsoft Visual C++ 2010 Redistributable Package」が必要


詳細は、
http://docwiki.embarcadero.com/RADStudio/Seattle/ja/PostgreSQL_%E3%81%B8%E3%81%AE%E6%8E%A5%E7%B6%9A%EF%BC%88FireDAC%EF%BC%89


FireDAC Params設定は、下記7点
  with DBPg.Params do
  begin
    Values['DriverID'] := 'PG';
    Values['Database'] := DBName;      //データベース名
    Values['User_Name'] := UserName;
    Values['Password'] := Password;
    Values['Server'] := Server;               //サーバー名(IP)
    Values['CharacterSet'] := 'UTF8';      //文字コードがUTF8のとき
    Values['ExtendedMetadata'] := 'True';;  //漢字フィールドを使うため
  end;

タグ:FireDAC
posted by しんくそふと at 16:17| Comment(0) | TrackBack(0) | おぼえ

FireDAC InterBase

FireDAC InterBase 使用時、Params 設定 以下7点

  with DB.Params do
  begin
    Values['DriverID'] := 'IB';
    Values['Protocol'] := 'TCPIP';
    Values['Server'] := SvrName;       //サーバー名 or IP
    Values['InstanceName'] := InstanceName;  //インスタンス名
    Values['Database'] := DBName; //データベースファイル名
    Values['User_Name']:= UserName;
    Values['Password'] := Password;
  end;

Delphi2007の場合
上位でバージョンでは、CharSet の指定も必要に思う

詳細

posted by しんくそふと at 16:49| Comment(0) | TrackBack(0) | おぼえ

2016年06月20日

FastReport 64Bitターゲット

FastReportは、デフォルトでは、ターゲットが32bit Windowsについては、ライブラリパスが設定されるが、64bit Windowsには、設定してくれないようなので、手動で設定する必要がある。

デフォルトは下記(32BitOSで作業の場合)
C:\Program Files\FastReports\LibD24x64


posted by しんくそふと at 08:49| Comment(0) | TrackBack(0) | おぼえ

2016年08月03日

FastReport VCL ⇒ FireMonkey

FastReportのVCL版で作成したレポートフォームをFireMonkey版で開いたとき、TfrxMemoViewで設定した文字が表示されないときは、Font.Colorを確認。Nullになっているので、再設定。

追記

というか、TfrxMemoView以外もColorは、全部再設定必要。



タグ:FastReport
posted by しんくそふと at 16:57| Comment(0) | TrackBack(0) | おぼえ

2016年10月10日

ESPr Developer ファームウェアの書き込み

ESPr Developer(旧名:ESP-WROOM-02開発ボード) ファームウェアの書き込み

1.FLASH 押す
2.RESET 押す
3.RESET 離す
4.この状態(FLASH 押下)のまま、スケッチ書き込み。
5.FLASH 離す(書き込みが始まった時点で離してもよいみたい)
6.RESET 押す/離す




posted by しんくそふと at 09:53| Comment(0) | TrackBack(0) | おぼえ

2017年04月06日

パッケージビルドエラー


DesignIntf, DesignEditors が見つからないエラー時の対応

プロジェクトオプション
 Delphiコンパイラ -> コンパイル -> その他のオプション -> コンパイラに渡す追加オプション
に、-LUDesignIDE を設定



posted by しんくそふと at 11:14| Comment(0) | TrackBack(0) | おぼえ