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
プチモンテ ※この記事を書いた人
![]() | |
![]() | 💻 ITスキル・経験 サーバー構築からWebアプリケーション開発。IoTをはじめとする電子工作、ロボット、人工知能やスマホ/OSアプリまで分野問わず経験。 画像処理/音声処理/アニメーション、3Dゲーム、会計ソフト、PDF作成/編集、逆アセンブラ、EXE/DLLファイルの書き換えなどのアプリを公開。詳しくは自己紹介へ |
| 🎵 音楽制作 BGMは楽器(音源)さえあれば、何でも制作可能。歌モノは主にロック、バラード、ポップスを制作。歌詞は抒情詩、抒情的な楽曲が多い。楽曲制作は🔰2023年12月中旬 ~ | |









