FireDACの秘密:最後に挿入された自動生成IDとEnterprise Connectors この記事は Eli M. による Secrets Of FireDac: Last Inserted Auto Generated Id And Enterprise Connectors の抄訳です。  自動インクリメントフィールドがあるテーブルにデータを挿入するとき、一般的にはSQLクエリを使用して新しく作成されたレコードの最後に挿入されたIDを取得します。TFDQueryを使用してINSERTクエリを実行し、続いて、SELECTクエリを実行すれば、新しく挿入された自動インクリメントIDを取得できます。 異なるデータベースには、これを実現するために異なるSQLクエリがあります。 たとえば、MySQLには、LAST_INSERT_ID(例:SELECT LAST_INSERT_ID))という名前で実行できるSELECTクエリ関数があります。 このSELECT文を直接実行するか、FireDAC内蔵の機能を使用することができます。 FireDACには、GetLastAutoGenValueというTFDConnectionコンポーネントから呼び出すことのでき...

Posted by on in UI
Ranorex Test Automationのご紹介 前回の続きです。 Architect版に追加されるツールとして Aqua Data Studioをご紹介しましたが、今回は、追加されるもう一つのツールである、テスト自動化ツールのRanorex Test Automationを簡単にご紹介します。 テストツールとして、RAD StudioにはDUnitがバンドルされていますが、ユニットテスト用です。一方、Ranorex Test Automationは文字通りの自動テストツールで、UIテスト向けのツールです。このような自動テストツールとして、SeleniumやMicroSoft Visual Studio Test Professionalが代表的です。 ほんのさわりですが、実際に自動テストを実行してみましょう。 起動画面です。 テストプロジェクトを作成します。マクロには、C#やVB.NETが使えます。   テストケースが作成出来たので、アプリを登録します。 Delphi/C++Builderの場合は、"Desktop"を選択します。 アプリケーションを操作すると、その内容が記録されます。 ...

Posted by on in Database
Aqua Data Studio(ADS)のご紹介 先日、次期RAD Studio Architect版について、アップデートの発表がありました。 その中で非常に興味深いツールが2つ追加されます。 一つめは、データベース管理/開発ツールであるAqua Data Studio。二つめはテスト自動化ツールのRanorex Test Automationです。 今回は、そのうちのAqua Data Studio(以後、ADS)をご紹介します。 ADSは非常に強力なデータベース開発、管理ツールです。    ADSがどのようなものか、ご紹介しましょう。まず、データベースサーバーの登録を行います。   ご覧いただけるように、様々なデータベースを使うことが出来ます。OracleやMSSQLといったエンタープライズ系から、Apache DerbyやSQLiteのような組み込み向け、そして、みんな大好き(?)なExcelもあります。  データベース開発、管理ツールとしては、一通りの機能を備えています。  ビジュアルなクエリの作成。   データベースをリバースエンジニアリン...
GetItベースのインストーラーのログを有効にする方法  この記事は MARCO CANTUによる、Enabling GetIt Install Logs for RAD Studio Installationの抄訳です。     RAD StudioのGetItベースのWebインストーラは、時々、かなり曖昧なエラーメッセージで停止します。 これは、ネットワーク接続の問題、奇妙なファイルシステムの構成、ディスク領域の不足、不完全なインストール、および、その他の原因である可能性があります。 しかし、 エラーメッセージの中には、"操作エラー"のように、問題の原因を説明していないものがあります。 将来的には、「フォルダxyzを作成できませんでした」、「ファイルfoo.dcuをフォルダbarにコピーできませんでした」などの特定のエラーが発生していることを確認出来るようにしています。 当面の間ですが、Quality Portalへエラーを詳細に報告する方法として、文書化されていませんが、インストーラの進捗状況のログファイルを生成するためのレジストリの設定があります。 注:インストールと機...

Posted by on in Blogs
IBLiteをWindowsで使用する IBLiteとは IBLiteはInterBaseデータベースのローカルバージョンです。 セッション数やデータベースサイズといった機能に一部制限がありますが、無料で使用することができ、InterBase Server Editionと完全な互換性があります。違いはDocWikiを参照してください。 特別なインストールは不要で、DLLとライセンスファイルを配置するだけで、アプリケーションに組み込むことができます。 IBLiteの初期設定 Windows上でIBLiteを使用したアプリを作成するには、以下の設定をします。 Visual Studio 2013 の Visual C++ 再頒布可能パッケージをインストールします。 RAD StudioのGetIt パッケージマネージャーから、"InterBase 2017"を検索し、IBLiteをインストールします。インストールされたファイルは$(IBREDISTDIR)\InterBase2017に配置されます。 $(IBREDISTDIR)\InterBase2017\win32_togo(64bitはwin64_to...
IBLite 2017 の GetIt パッケージが更新され、ライセンスファイルが付属しました この記事は、MARCO CANTUによるUpdated IBLite 2017 GetIt Package With License Fileの抄訳です。 IBLiteは、モバイルアプリケーションとデスクトップアプリケーションに組み込むことのできる、InterBaseデータベースのローカルバージョンです。 RAD Studioは完全なデプロイメントをサポートしているので、必要なファイルをデバッグ用とストア用の両方のアプリケーションに簡単にデプロイできます(下の画像を参照してください)。 IBLiteは、一般的に使用されているSQLiteと比較して、より多くの機能を提供し、より堅牢なモバイルデータベースです。 また、InterBaseサーバーと完全に互換性があります。(RAD Studioに付属の無料の開発者用エディションも同様です。) 最近まで、IBLiteのデプロイには一意のライセンスファイルが必要でした。 開発者は、RAD Studioのシリアル番号と共に受け取ったIBLiteのシリアル番号と登録コードを、EmbarcaderoのWebサイトに入力して、IBLiteライセンスフ...
モバイル端末のデータを開発用PCに転送する はじめに モバイルアプリの開発で、端末に保存されているデータベースやログなどを、開発用のPCに持ってきて確認したいケースは良くあります。モバイル端末では「サンドボックス構造」として、モバイルアプリケーションがアクセス可能な領域が制限されています。PCからも同様で、モバイルアプリケーションの領域を直接参照することは出来ません。 以下の手段を使用すれば、モバイルアプリケーションのデータを開発用のPCに転送することが出来ます。 Andoroidの場合: Android端末のUSBデバッグを有効にします。 コマンドプロンプトから"adb shell"を実行します。 Andoroidのシェルが起動しますので、"run-as [アプリケーションのパッケージ名]"を実行して、アプリケーションのストレージに移動します。アプリケーションのパッケージ名はRAD Studioのプロジェクトオプションで確認出来ます。 cpコマンドで、転送したいファイルをPCからアクセス可能なディレクトリにコピーします。例)"cp Test1.IB /sdcard/Pictures" "exit"を入力して...

Posted by on in Programming
C++ with LINQ I found an interesting C++ libraly.That is "LINQ for C++". What's "LINQ"? LINQ (Integrated Language Query) is a function of C#. LINQ issues a query to the container and gets the result. For details, please refer to MSDN. https://docs.microsoft.com/en-us/dotnet/csharp/linq/ LINQ for C++ "LINQ for C++" is the libraly enable to use LINQ on C++. https://archive.codeplex.com/?p=cpplinq Usage is simple. Just include the header file published on GitHub. https://github.com/mrange/cpplinq Using...
TDBGridのカラム単位でIMEを制御する場合の確認ポイント TDBGridで、ある列はデフォルトでIMEをONにしたい場合はIMEを制御したい列のTColumn.ImeModeを"imHira"などに設定します。 このようなケースで文字列を入力したら最初の1文字だけが入力されない場合があります。 もし、カラム単位でIMEを制御したい場合、TDBGrid.OptionsでdgAlwaysShowEditorを有効にして、インプレイスエディタを常に有効にしてみてください。  ...
Tags: Grid 日本

Posted by on in Programming
C++でLINQを使う C++で面白いライブラリがあったので紹介します。 LINQって何? LINQ(統合言語クエリ)はC#の機能でコンテナに対してクエリを発行して結果を抽出します。 詳細はMSDNのドキュメントを参照してください。 https://docs.microsoft.com/ja-jp/dotnet/csharp/linq/ LINQ for C++ LINQ for C++はこの、LINQをC++で使用できるようにしたライブラリです。 https://archive.codeplex.com/?p=cpplinq 使い方も簡単で、GitHubで公開されているヘッダファイルをインクルードするだけです。 https://github.com/mrange/cpplinq では、実際に使ってみましょう。 #pragma hdrstop #pragma argsused #ifdef _WIN32 #include <tchar.h> #else typedef char _TCHAR; #define _tmain main #endif ...

Check out more tips and tricks in this development video: