C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: VB.NET ODBC作成APIの戻り値について


(過去ログ 97 を表示中)

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■57786 / inTopicNo.1)  VB.NET ODBC作成APIの戻り値について
  
□投稿者/ ブラック (1回)-(2011/03/15(Tue) 16:28:10)

分類:[.NET 全般] 

VB.NETでOracleのODBCを作成するプログラムを作成しています。

ODBC自体は作成出来るのですが、ODBCを作成した後のAPIの関数の戻り値が0に
なって戻ってきます。

きちんと管理ツールのデータソースを確認した所、ODBCは作成出来ています。

Accessで実際にそのODBCを使用出来るか確認した所、問題なく正常に動作しました。

なぜ作成時にエラーで返ってくるのでしょうか?原因が分かる方教えて下さい。

ソースは以下になります。

/***************************************************************************************************************
Imports System.Runtime.InteropServices

Public Class Form1

Private Const ODBC_ADD_SYS_DSN As Integer = 4 ' システムデータソースを追加

Private AddOdbcDNS As String = "" ' データソース名
Private AddOdbcDescription As String = "" ' 説明
Private AddOdbcService As String = "" ' TNSサービス名
Private AddOdbcUser As String = "" ' ユーザー
Private AddOdbcPass As String = "" ' パスワード

<DllImport("ODBCCP32.DLL", CharSet:=CharSet.Auto, SetLastError:=True)> _
Private Shared Function SQLConfigDataSource(ByVal hwndParent As Integer, _
ByVal fRequest As Integer, _
ByVal lpszDriver As String, _
ByVal lpszAttributes As String) As Integer

End Function


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'ODBC作成のパラメータをセットする
AddOdbcDNS = "TEST"
AddOdbcDescription = "テスト用"
AddOdbcService = "TESTDB"
AddOdbcUser="USER"
AddOdbcPass="USER"

'ODBCデータソースの作成
Call CreateODBC()
End Sub

Private Sub CreateODBC()
Dim strDriver As String
Dim strParam As String

' ODBCドライバを指定する
strDriver = "Oracle in OraClient11g_home1"

' データソースとして登録する属性を Chr(0) で区切り指定する
strParam = "DSN=" + AddOdbcDNS + Chr(0)
strParam = strParam + "Description=" + AddOdbcDescription + Chr(0)
strParam = strParam + "ServerName=" + AddOdbcService + Chr(0)
strParam = strParam + "UserID=" + AddOdbcUser + Chr(0)

'strParam = ""

' データソースの登録
Dim intRet = SQLConfigDataSource(0, ODBC_ADD_SYS_DSN, strDriver, strParam)

' 登録の成功・失敗の判断
If intRet Then
MessageBox.Show("データソースを登録しました。", "登録", MessageBoxButtons.OK)
Else
MessageBox.Show("登録に失敗しました。", "登録", MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
End Sub

End Class
***************************************************************************************************************/

長文失礼しました。

引用返信 編集キー/
■57787 / inTopicNo.2)  Re[1]: VB.NET ODBC作成APIの戻り値について
□投稿者/ ブラック (2回)-(2011/03/15(Tue) 16:30:39)
No57786 (ブラック さん) に返信
> VB.NETでOracleのODBCを作成するプログラムを作成しています。
>
> ODBC自体は作成出来るのですが、ODBCを作成した後のAPIの関数の戻り値が0に
> なって戻ってきます。
>
> きちんと管理ツールのデータソースを確認した所、ODBCは作成出来ています。
>
> Accessで実際にそのODBCを使用出来るか確認した所、問題なく正常に動作しました。
>
> なぜ作成時にエラーで返ってくるのでしょうか?原因が分かる方教えて下さい。
>
> ソースは以下になります。
>
> /***************************************************************************************************************
> Imports System.Runtime.InteropServices
>
> Public Class Form1
>
> Private Const ODBC_ADD_SYS_DSN As Integer = 4 ' システムデータソースを追加
>
> Private AddOdbcDNS As String = "" ' データソース名
> Private AddOdbcDescription As String = "" ' 説明
> Private AddOdbcService As String = "" ' TNSサービス名
> Private AddOdbcUser As String = "" ' ユーザー
> Private AddOdbcPass As String = "" ' パスワード
>
> <DllImport("ODBCCP32.DLL", CharSet:=CharSet.Auto, SetLastError:=True)> _
> Private Shared Function SQLConfigDataSource(ByVal hwndParent As Integer, _
> ByVal fRequest As Integer, _
> ByVal lpszDriver As String, _
> ByVal lpszAttributes As String) As Integer
>
> End Function
>
>
> Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
> 'ODBC作成のパラメータをセットする
> AddOdbcDNS = "TEST"
> AddOdbcDescription = "テスト用"
> AddOdbcService = "TESTDB"
> AddOdbcUser="USER"
> AddOdbcPass="USER"
>
> 'ODBCデータソースの作成
> Call CreateODBC()
> End Sub
>
> Private Sub CreateODBC()
> Dim strDriver As String
> Dim strParam As String
>
> ' ODBCドライバを指定する
> strDriver = "Oracle in OraClient11g_home1"
>
> ' データソースとして登録する属性を Chr(0) で区切り指定する
> strParam = "DSN=" + AddOdbcDNS + Chr(0)
> strParam = strParam + "Description=" + AddOdbcDescription + Chr(0)
> strParam = strParam + "ServerName=" + AddOdbcService + Chr(0)
> strParam = strParam + "UserID=" + AddOdbcUser + Chr(0)
>
> ' データソースの登録
> Dim intRet = SQLConfigDataSource(0, ODBC_ADD_SYS_DSN, strDriver, strParam)
>
> ' 登録の成功・失敗の判断
> If intRet Then
> MessageBox.Show("データソースを登録しました。", "登録", MessageBoxButtons.OK)
> Else
> MessageBox.Show("登録に失敗しました。", "登録", MessageBoxButtons.OK, MessageBoxIcon.Error)
> End If
> End Sub
>
> End Class
> ***************************************************************************************************************/
>
> 長文失礼しました。
>
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -