- PR -

Pocket PC 2003 から SQLServer2000に接続して値の取得

1
投稿者投稿内容
しんてむ
会議室デビュー日: 2008/02/18
投稿数: 10
投稿日時: 2008-03-09 10:48
お世話になります。

WindowsXPSP2
VisualStudio2005
SQLServer2000

スマートデバイス PocketPc2003 で開発をしています。
PocketPc2003からSQLServerのデータを直接参照する事が可能でしょうか。

VBアプリでSqlConnectionを使用し取得出来ることは確認できました。
同様にSqlConnectionで行ってみましたが、PocketPcでは利用できない様でした。
そこでSqlCeConnectionを利用しましたが、失敗しました。
接続文字列はSqlConnectionの様に記述してみました。

リファレンス等にある方法はSqlServerCEに対しての接続文字列と思います。
SqlCeConnectionではSqlServerCEのみが対応していますでしょうか?

宜しくお願い致します。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2008-03-09 20:00
引用:

しんてむさんの書き込み (2008-03-09 10:48) より:

同様にSqlConnectionで行ってみましたが、PocketPcでは利用できない様でした。


Windows Mobile + Pocket PC の環境であれば System.Data.SqlClient.SqlConnection は使えるハズなのですが...

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
しんてむ
会議室デビュー日: 2008/02/18
投稿数: 10
投稿日時: 2008-03-10 10:16
返信ありがとうございます。
SqlConnectionで試して見た時のソースを載せてみますので何か指摘事項あれば宜しくお願い致します。

sqlConn.Open()
の部分でエラーに行ってしまいます。



Imports System.Data
Imports System.Data.SqlClient

Public Class Form1

Private sqlConn As SqlConnection
Private sqlCmd As SqlCommand
Private sqlAdp As SqlDataAdapter
Private sqlReader As SqlDataReader

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Try
sqlConn = New SqlConnection("Data Source =Server;Initial Catalog=TestDB;Uid=sa;Pwd=")
sqlCmd = sqlConn.CreateCommand()
sqlConn.Open()

sqlCmd.CommandText = "Select * From TestTable "
sqlReader = sqlCmd.ExecuteReader()

sqlReader.Close()
sqlConn.Close()

Catch ex As Exception
MsgBox("Error")
End Try

End Sub

End Class
ぱてお
常連さん
会議室デビュー日: 2008/03/07
投稿数: 41
投稿日時: 2008-03-10 15:59
引用:
sqlConn.Open()
の部分でエラーに行ってしまいます。


これって使えないのではなくて使い方が間違っているとかの類では?
エラーが起こるのであれば、エラーの内容まできちんと提示しないと
状況が把握できないと思いますよ。
しんてむ
会議室デビュー日: 2008/02/18
投稿数: 10
投稿日時: 2008-03-10 19:00
返信ありがとうございます。

たしかにメッセージを表示しないと分かりませんよね。
システムからのメッセージを表示させる様にしていませんでした・・・。
実際にメッセージを表示させた所、
”PInvoke DLL 'dbnetlib.dll'が見つかりませんでした”
というメッセージが表示されました。

この内容で検索した所、同様の現象で解決したという内容を見つけました。
http://bbs2.wince.ne.jp/bbs2002/devb/List.asp?P=4
この記事を参考に対応を行いましたが、改善されていない状態です。

-----以下抜粋-----
「sql.dev.JA.ppc.wce5.armv4i.CAB」
を実機にインストール後
「dbnetlib.dll」
をexeファイルと同じフォルダにコピーすることで、
動作するようになりました。

と同時に、
ActiveSync の「アプリケーションの追加と削除」には
「Microsoft SQL Client 2.0[JA]」
が表示されるようになりました。
----------

上記の様に「Microsoft SQL Client 2.0[JA]」 が表示されるようになり、
Exeファイルと同じフォルダにコピーしましたが改善されませんでした。

実機のバージョンなどはこれから確認して報告させて頂きます。
宜しくお願い致します。

しんてむ
会議室デビュー日: 2008/02/18
投稿数: 10
投稿日時: 2008-03-10 19:34
追加情報です。

実機PDA
HP iPAQ rx4240
Windows Mobile5.0 software for Pocket PC 日本語版with Messaging and Security Feature Pack

インストールアプリ
Microsoft .NET CF 2.0
Microsoft .NET CF 2.0 JA-String Resource
Microsoft SQL Client 2.0[JA]


しんてむ
会議室デビュー日: 2008/02/18
投稿数: 10
投稿日時: 2008-03-10 22:02
お世話になります。

結果的にデータの取得をすることができました。
やり方としては問題なかったようですが、コピーするdbnetlib.dllの種類がいけなかったようです。
PC内のdbnetlib.dllファイルを検索し、存在するファイルを無造作にコピーしていた事が失敗の原因だったようです。

今回インストールしたファイル
sql.dev.JA.ppc.wce5.armv4i.CABの存在場所
C:\Program Files\Microsoft SQL Server Compact Edition\v3.5\Devices\Client\wce500\armv4i
その直下にあるファイルをコピーした所、データの取得が出来ました。
ファイルサイズ等も違っていたので内容が異なるファイルだったようです。
(検索時はファイルサイズを表示していなかったのですべて同じと思ったのが間違いでした。)
というより普通は同じ所のファイルをコピーしますよね。お恥ずかしい限りです。

今回もまた皆さんの助言に助けられ解決する事が出来ました。感謝しております。
自分も日々精進しがんばります。
ありがとうございました。

1

スキルアップ/キャリアアップ(JOB@IT)