- PR -

ODBC.NETでSybase接続

1
投稿者投稿内容
会議室デビュー日: 2002/07/05
投稿数: 4
投稿日時: 2002-07-05 10:21
はじめまして。
ASP.NETの初心者です。

現在VB6で作ったアプリケーションをWeb化しようと思っています。
ASP(.NETなし)でのテストでは特に問題はなかったんですが、
ADO.NETではODBC.NETが必要とインターネット上で知りインストールしました。
VB.NETのアプリではうまく接続できましたが、Webアプリでは
'OdbcConnectionが定義されていません'のエラーがでます。
ソースの一部は以下の通りです。
-------------------------------------------------
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="Microsoft.Data.ODBC" %>
<html>
<script language="VB" runat="server">
Sub Page_Load(Sender As Object, E As EventArgs)
Dim MyConnection As OdbcConnection
Dim MyCommand As OdbcCommand
-------------------------------------------------
何か初期設定が必要なようにも思えるんですが、どなたか教えて頂ければ幸いです。
また、ODBC.NET以外にもSybaseとの接続方法はあるんでしょうか。
よろしくお願いいたします。
ほや
会議室デビュー日: 2002/05/27
投稿数: 18
お住まい・勤務地: 関西
投稿日時: 2002-07-05 15:45
私の場合は、PostgreSQLと接続したのですが、データプロバイダは、
同じ Microsoft.ODCB.NET Provider を使ったので、参考になるかと
思い、書きます。

手順としては、
1.ODBCドライバがあるかどうか確認する。
2.接続文字列を作って、ほんとに接続できるか確認する。
3.実際にコーディングする。
です。

PostgreSQLの時の手順を以下に書きます。

1.ODBCドライバのインストール
PostgerSQL ODBC Driverをインストールする。
プログラム→管理ツール→ODBCデータソースアドミニストレータで
登録されたかどうか確認します。
その後、同ツールで接続先DBをODBCに登録します。

2.接続文字列
接続文字列がわからなかったので、次のURLを参考にしました。
http://www.users.gr.jp/ml/archive/dotNET/350.asp

3.コーディング
試行錯誤の結果、次のように実装すると接続することが出来ました。
(C#です)

string cnstr = "Provider=MSDASQL;DSN=AAA;UID=BBB;PWD=CCC;";
OdbcConnection cn = new OdbcConnection(cnstr);
(AAA はODBCに登録した接続先DBのデータソース名、BBB はユーザID、
CCCはパスワードをそれぞれ設定する。)

あとは、OleDbデータプロバイダやSQL.NETデータプロバイダと同じです。

ご参考までに。


[ メッセージ編集済み 編集者: ほや 編集日時 2002-07-05 15:53 ]
ほや
会議室デビュー日: 2002/05/27
投稿数: 18
お住まい・勤務地: 関西
投稿日時: 2002-07-05 15:59
追記です。
接続文字列は接続先DBによって変わります。
次を一度参照してみてください。

Microsoft のサポート
[HOW TO] Visual C# .NET で ODBC .NET マネージド プロバイダと
接続文字列を使用する方法
文書番号: JP310988
会議室デビュー日: 2002/07/05
投稿数: 4
投稿日時: 2002-07-08 09:34
早速の返答を頂きながら、遅れてすいません。

私の場合は、'接続文字列'以前の問題です。
'OdbcConnectionが定義されていません'のエラーが出るということは、
ASP.NETがODBC.NETを認識していないのではないかと思われます。

ぼやさんは、ODBC.NETをインストール後何か設定をされたんでしょうか?
ほや
会議室デビュー日: 2002/05/27
投稿数: 18
お住まい・勤務地: 関西
投稿日時: 2002-07-08 17:08
コンパイルがとおらないということですね?
VS.NETで開発されているのでしたら、プロジェクトの参照設定で、インス
トールしたODBC.dllを登録しないといけません。
VS.NETを使ってないのでしたら、申し訳ないですが、私にはわかりません。
会議室デビュー日: 2002/07/05
投稿数: 4
投稿日時: 2002-07-08 18:31
以前にVS.NETでトライしたんですが、同様のエラーが出ました。
もう一度トライしようと思いますが、すでにアンインストールしてしまったんで
後日トライしてみます。
ありがとうございました。
なお、前のレスで[ほや]さんのお名前が濁っていたのをお詫びいたします。
ほや
会議室デビュー日: 2002/05/27
投稿数: 18
お住まい・勤務地: 関西
投稿日時: 2002-07-09 09:13
追記ですが、VS.NETベータ2では、VS.NET製品版とDLL参照の方法が
違うとかで、ODBC.dllの参照設定が出来なかった記憶があります。
また、ODBC.dllはMDAC2.7以降がインストールされていることが
必要です。
会議室デビュー日: 2002/07/05
投稿数: 4
投稿日時: 2002-07-09 13:55
VS.NETなしで接続出来ました。
「クイック スタート チュートリアル」の構成のところに書いてありました。

アプリケーションディレクトリに、binディレクトリを作成し、
ODBC.NETのインストールディレクトリから
Microsoft.Data.Odbc.dllとMicrosoft.Data.Odbc.resources.dllをコピーしました。

ちなみに接続文字列は、"DSN=xxxx"だけでOKでした。
他にも方法はあるかもしれませんが、とりあえず色々テストできそうです。

お手数をおかけ致しまして、有難うございました。
1

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