LazarusでMySQLにアクセスする
LazarusでMySQL8.0(2018年4月版)にODBC経由でSQLを投げてみました。Lazarusの最新版は1.8.2で2018年2月版です。ですので、ネイティブはMySQL5.7までの対応となっています。
ネイティブの方が確実に高速ですが、とりあえずODBCでの接続テストです。
事前準備
MySQLのインストール、ODBC設定などはMySQLのインストールからコマンド操作(ユーザ/データベース/テーブルの作成)やODBC設定をご覧下さい。
実行前
実行後
ソース
実行ボタンを押したらMySQLからデータを取得して、メモに表示します。
unit Unit1; {$mode objfpc}{$H+} interface uses Classes, SysUtils, sqldb, odbcconn, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls; type { TForm1 } TForm1 = class(TForm) Button1: TButton; Memo1: TMemo; procedure Button1Click(Sender: TObject); private public end; var Form1: TForm1; implementation {$R *.lfm} { TForm1 } // 元のコード // http://wiki.freepascal.org/ODBCConn#DSN_example procedure TForm1.Button1Click(Sender: TObject); var S: String; conn : TODBCConnection; query: TSQLQuery; transaction: TSQLTransaction; begin conn := TODBCCOnnection.Create(nil); query := TSQLQuery.Create(nil); transaction := TSQLTransaction.Create(nil); try try // データ ソース(ODBC)に登録したData Source Name(DSN)を指定する conn.DatabaseName := 'odbc_test'; // データ ソース(ODBC)側で設定済みならば入力不要です。 // conn.UserName:= 'test'; // conn.Password:= '1234567890'; // SQLはSELECTのみなのに何故かトランザクションが必要らしいです。 conn.Transaction := transaction; query.DataBase := conn; query.SQL.Text := 'select no,title from mst_dummy'; query.Open; S := ''; while not query.EOF do begin S := S + query.FieldByName('title').AsString + #13#10; query.Next; end; finally query.Free; transaction.Free; conn.Free; end; except on E: Exception do ShowMessage(E.message); end; Memo1.Text:= S; end; end.
元コード http://wiki.freepascal.org/ODBCConn#DSN_example
参考サイト
スポンサーリンク
関連記事
前の記事: | Delphiの開発環境を丸ごとコピーした無料のLazarusを使用してみる。[Lazarusの使い方] |
次の記事: | RawImage.Data and Scanline bug in TPicture.Bitmap [Lazarus] |
公開日:2018年04月25日
記事NO:02638