作業関係では、最も公開されているデータベースはMicrosoft SQL Serverであるため、Raspberry Piで遊んでも、MSSQLへのアクセス方法を考えています。現在、PythonとPHP、UIを使用したQTについて考え、テストすることができます。PythonとQTはunixodbcをインストールする必要があり、phpはphp-sybaseライブラリを必要とします。最近、古くから知られているモノをふと思い出したのですが、試してみませんか?
ちょうどそれをする、sudo apt-get install mono-complete
今はそれだけで十分です。
テキストエディターを開いてテストコードを入力し、test.csとして保存します。
using System;
using System.Data;
using System.Data.SqlClient;
namespace Test
{
class Program
{
static void Main(string [] args)
{
Console.WriteLine("MSSQL 测试(编译@RPI)...\r\n");
Console.WriteLine(GetVersion());
}
static string GetVersion()
{
//string conn = "server=192.168.1.10;database=master;user id=sa;password=****;";
string conn = "server=192.168.1.10;database=A;user id=sa;password=****";
// string sql = "select @@version";
string sql = "select top 1 Remark from mono_test";
using(SqlConnection db = new SqlConnection(conn))
{
SqlCommand cmd = new SqlCommand(sql,db);
try
{
db.Open();
string x = cmd.ExecuteScalar().ToString();
return x;
}
catch(Exception ex)
{
return ex.Message;
}
finally
{
cmd.Dispose();
db.Close();
}
}
}
}
}
次にコンパイルします。
mcs test.cs -r:System.Data
警告やエラーはありません。lsはtest.exeが生成されたことを発見しました。fileコマンドを使用して、レポートがPE32実行可能ファイルであることを確認します。最後に、mono test.exeを使用して実行しました。SQLServerのデータは正常に取得され、中国語の文字化けはありませんでした。
このexeをWindowsにコピーすると、問題なく実行されます。
面白い。では、WindowsでVSを使用してコンパイルされたコンソールexeはRaspberry Piで実行できますか?
VS2017を開き、Windowsクラシックデスクトップ用の新しいコンソールプロジェクト、.netフレームワークバージョン4.5.2(現在のモノのデフォルトバージョン、Raspberry Piでmcs --helpを実行し、-sdkオプションで確認できます)を作成してテストします。 csのコアコードは過去にコピーされます(前のコードを区別するために、名前空間はrpitestに変更され、プロンプトも "compile @Windows"に変更されます)。
Windowsで生成されたrpitest.exeをコンパイルして取得します。それをRaspberry Piにコピーし、mono rpitest.exeを実行します。クエリを正常に実行することもできます。
ハ、ちょっと面白い。
==== Windows UIは引き続きサポートされています====