サンプル集 |
■VC ■C# ■Java ■BorlandC ■LinuxC ■MS-DOS ■bash ■Excel VBA ■VBScript ■PHP ■HTML ■perl ■iPhone ■Android ■Lua ■other |
Linuxコマンド |
用語集 |
debian メモ |
apache2 メモ |
MySQL メモ |
Oracle メモ |
HOME |
VC++ CLR で SQLServer へ接続します。
◆環境OS | Windows XP Professional Version 2002 Service Pack 3 |
---|---|
VC | Microsoft Visual C++ 2005 77972-235-2482122-41660 |
プロジェクトは「CLR コンソールアプリケーション」で作成しました。
SQLSvTest.cpp | ||
|
実行してみます。
SQLSvTest START
SqlConnection::Open
SqlConnection::Close
SQLSvTest END
SqlConnection::Open
SqlConnection::Close
SQLSvTest END
正しく動作しました。
ちなみにMDFファイルが見つからないとこんなエラーが出ます。
SQLSvTest START
SqlConnection::Open
ハンドルされていない例外: System.Data.SqlClient.SqlException: ファイル
C:\aaa.MDF の自動的に名前が付けられたデータベースをアタッチできません
でした。同じ名前のデータベースが既に存在するか、指定されたファイルを
開けないか、UNC 共有に配置されています。
場所 main(String[] args) 場所 c:\sqlsvtest\sqlsvtest\sqlsvtest.cpp:
行 33
場所 mainCRTStartupStrArray(String[] arguments) 場所 f:\sp\vctools\c
rt_bld\self_x86\crt\src\mcrtexe.cpp:行 324
SqlConnection::Open
ハンドルされていない例外: System.Data.SqlClient.SqlException: ファイル
C:\aaa.MDF の自動的に名前が付けられたデータベースをアタッチできません
でした。同じ名前のデータベースが既に存在するか、指定されたファイルを
開けないか、UNC 共有に配置されています。
場所 main(String[] args) 場所 c:\sqlsvtest\sqlsvtest\sqlsvtest.cpp:
行 33
場所 mainCRTStartupStrArray(String[] arguments) 場所 f:\sp\vctools\c
rt_bld\self_x86\crt\src\mcrtexe.cpp:行 324
2010/12/02追記
このプログラムを実行後、osqlで同じデータベースを使おうとしたらエラーが出ました。
>osql -Utest
パスワード:
1> use testDB
2> go
メッセージ 945、レベル 14、状態 2、サーバー localpc0004、行 1
ファイルにアクセスできなかったか、メモリまたはディスク領域が不足してい
るので、データベース 'testDB' を開けません。詳細については、SQL Serve
r のエラー ログを参照してください。
メッセージ 602、レベル 21、状態 50、サーバー localpc0001、行 1
sysindexes 内に、データベース ID 5、オブジェクト ID 1、インデックス ID
1 の行が見つかりませんでした。DBCC CHECKTABLE を sysindexes 上で実行
してください。
メッセージ 602、レベル 21、状態 50、サーバー localpc0001、行 1
Could not find row in sysindexes for database ID 5, object ID 1, index
ID 1. Run DBCC CHECKTABLE on sysindexes.
パスワード:
1> use testDB
2> go
メッセージ 945、レベル 14、状態 2、サーバー localpc0004、行 1
ファイルにアクセスできなかったか、メモリまたはディスク領域が不足してい
るので、データベース 'testDB' を開けません。詳細については、SQL Serve
r のエラー ログを参照してください。
メッセージ 602、レベル 21、状態 50、サーバー localpc0001、行 1
sysindexes 内に、データベース ID 5、オブジェクト ID 1、インデックス ID
1 の行が見つかりませんでした。DBCC CHECKTABLE を sysindexes 上で実行
してください。
メッセージ 602、レベル 21、状態 50、サーバー localpc0001、行 1
Could not find row in sysindexes for database ID 5, object ID 1, index
ID 1. Run DBCC CHECKTABLE on sysindexes.
何か後処理とかをし忘れてるのでしょうか?
Copyright (C) 2012 ymlib.com