tic-hirano
2017年3月14日 17時23分
お世話になっております,平野と申します.
Armadillo-840上でQtアプリからSQL Serverへアクセスするため,以前の投稿(https://armadillo.atmark-techno.com/forum/armadillo/1404)を参考にunixODBC+FreeTDS環境を構築しようとしていますが「There was a problem connecting to the server」というメッセージで動作停止してしまいます.
解決方法はありますでしょうか?
開発環境:ATDE5 i386 (20161130)
Linuxカーネル:v3.4-at20
ユーザランド:v20160927
環境構築の手順は次の通りです.
・SDブートのDebianを構築する
http://manual.atmark-techno.com/armadillo-840/armadillo-840_product_man…
・下記サイトを参考にunixODBCとFreeTDSをインストールする
http://d.hatena.ne.jp/htgc/20130310/1362863515
・unixODBC-2.3.4
./configure --prefix=/usr/local/unixODBC-2.3.4
・freetds-1.00.27
./configure --prefix=/usr/local/freetds-1.00.27 --enable-shared --enable-static --enable-odbc-wide --with-unixodbc=/usr/local/unixODBC-2.3.4
・設定ファイル
・「tds version = 7.4」に変更
・Debianでの接続確認は成功
root@debian:~/test# /usr/local/freetds-1.00.27/bin/tsql -S [DBラベル] -U [ユーザ名] -P [パスワード] locale is "C" locale charset is "ANSI_X3.4-1968" using default charset "UTF-8" 1> select @@version 2> go Microsoft SQL Server 2014 - 12.0.2000.8 (X64) Feb 20 2014 20:04:26 Copyright (c) Microsoft Corporation Express Edition (64-bit) on Windows NT 6.3 <X64> (Build 10240: ) (1 row affected)
・AtmakDistへの移植
・/usr/local/unixODBC-2.3.4/ 以下のbin, lib をコピー
・/usr/local/freetds-1.00.27/ 以下の bin, lib をコピー
・コンフィグおよび環境変数を設定
・AtmarkDistでの接続確認は失敗
[root@armadillo840-0 (ttySC2) /mnt/odbc]# /usr/local/freetds-1.00.27/bin/tsql -S [DBラベル] -U [ユーザ名] -P [パスワード] locale is "C" locale charset is "ANSI_X3.4-1968" using default charset "UTF-8" There was a problem connecting to the server
・ネットワーク パケットを確認してもコネクションを張れていない
以上,よろしくお願いします.
コメント
tic-hirano
平野です.
対応ありがとうございます.
tsqlは動作するようになりました.
なお,gconvをコピーする個所はATDE5では下記で対応しました.
cp -R /usr/arm-linux-gnueabihf/lib/gconv ./romfs/usr/lib/arm-linux-gnueabihf/
Qtアプリでアクセスするには下記の追加をおこないました.
■必要なパッケージのダウンロードと展開
[ATDE5]$ cd atmark-dist wget http://ftp.jp.debian.org/debian/pool/main/u/unixodbc/odbcinst1debian2_2.2.14p2-5_armhf.deb wget http://ftp.jp.debian.org/debian/pool/main/f/freetds/tdsodbc_0.91-2+deb7u1_armhf.deb dpkg-deb -x -v odbcinst1debian2_2.2.14p2-5_armhf.deb ./romfs dpkg-deb -x -v tdsodbc_0.91-2+deb7u1_armhf.deb ./romfs
■設定ファイルの内容
/etc/odbc.ini
Driver = /usr/lib/arm-linux-gnueabihf/odbc/libtdsodbc.so
/etc/odbcinst.ini
Driver = /usr/lib/arm-linux-gnueabihf/odbc/libtdsodbc.so Setup = /usr/lib/arm-linux-gnueabihf/odbc/libtdsS.so
■Qtアプリ
下記を参考にデータを参照するアプリケーションを作成したところデータが取得できました.
http://moon-phase.cocolog-nifty.com/blog/2014/06/qt5-qt4qtsql-81.html
at_takashi.sasayama
2017年3月16日 15時00分
笹山です。
こちらでも同様の現象を確認しました。
問題の切り分けが難しそうだったので、
別の方法ですが unixODBC+FreeTDS で MS SQL Server と接続確認できた方法を参考までに記載します。
■必要なパッケージのダウンロードと展開
■freetds.conf の配置
./romfs/etc/freetds 配下に設定済みのfreetds.confを配置します
■イメージのビルド
以下のコマンドでイメージをビルドします。
作成されたイメージで Armadillo-840 を起動します。
■動作確認