3 12月, 2013
■クライアント環境
Windows7(x64)
Office Access 2010(x86)
■接続先サーバー
Windows Server 2008R2(x64)
Microsoft SQL Server 2008 (SP3) – 10.0.5500.0 (X64)
■クライアント環境 SQL Server Native Client
[MicrosoftR SQL ServerR 2012 SP1 用 Feature Pack]から
[JPN\x64\sqlncli.msi] Or [JPN\x86\sqlncli.msi]をダウンロードする。
クライアントOSの環境に合わせる。今回はWindow7x64なので場合は[JPN\x64\sqlncli.msi]をインストールする。
また、接続先はSQL Server 2008R2だが下位互換があるため、最新版の2012用を使用する。
http://www.microsoft.com/ja-jp/download/details.aspx?id=35580
■ODBC設定
★ODBC接続時、Windows7(x64)の場合の注意点!
以下にx86用のODBC設定ファイルが存在する
「C:\Windows\SysWOW64\odbcad32.exe」
以下にx64用のODBC設定ファイルが存在する
「C:\Windows\System32\odbcad32.exe」
今回はOfficeがx86なので「C:\Windows\SysWOW64\odbcad32.exe」を使用する
3 12月, 2013
■環境クライアント
Windows7(x64)
LAMPP 1.8.2(x86)
UTF-8
■接続先サーバー
Windows Server 2008R2(x64)
Microsoft SQL Server 2008 (SP3) – 10.0.5500.0 (X64)
UTF-8
■クライアント環境 SQL Server Native Client
[MicrosoftR SQL ServerR 2012 SP1 用 Feature Pack]から
[JPN\x64\sqlncli.msi] Or [JPN\x86\sqlncli.msi]をダウンロードする。
クライアントOSの環境に合わせる。今回はWindow7x64なので場合は[JPN\x64\sqlncli.msi]をインストールする。
また、接続先はSQL Server 2008R2だが下位互換があるため、最新版の2012用を使用する。
http://www.microsoft.com/ja-jp/download/details.aspx?id=35580
■クライアント環境 Drivers for PHP for SQL Server
Microsoft Drivers 3.0 for PHP for SQL Server
今回は
・PHP5.4系
・SQL Server 2008R2
・Native Client 2012用
なので、「Microsoft Drivers 3.0 for PHP for SQL Server」を使用する。
環境により「Microsoft Drivers 2.0 for PHP for SQL Server」と使い分けること。
以下から、ダウンロードしてくる
http://www.microsoft.com/en-us/download/details.aspx?id=20098
回答後のファイルの中からPHP5.4用のextensionを使用する
PHPのスレッドセーフ Or Noneスレッドセーフにより
「php_pdo_sqlsrv_54_ts.dll」 Or 「php_pdo_sqlsrv_54_nts.dll」を使い分ける
あとはPHP.iniに以下を記載する(今回はスレッドセーフ版使用)
extension=php_sqlsrv_54_ts.dll
extension=php_pdo_sqlsrv_54_ts.dll
phpinfoで確認して使用する
PDO&UTF-8指定で接続!
15 12月, 2008
これも覚書、前にもくらった記憶が(苦笑)
ストアドからOutputされた値をCommandItemで受け取ったら、Connect Close後にしか
中身が見えないことに注意!
' Assumes that connection is a valid SqlConnection object.
Dim command As SqlCommand = New SqlCommand("SampleProc", connection)
command.CommandType = CommandType.StoredProcedure
Dim parameter As SqlParameter = command.Parameters.Add( _
"RETURN_VALUE", SqlDbType.Int)
parameter.Direction = ParameterDirection.ReturnValue
parameter = command.Parameters.Add( _
"@InputParm", SqlDbType.NVarChar, 12)
parameter.Value = "Sample Value"
parameter = command.Parameters.Add( _
"@OutputParm", SqlDbType.NVarChar, 28)
parameter.Direction = ParameterDirection.Output
connection.Open()
Dim reader As SqlDataReader = command.ExecuteReader()
Console.WriteLine( _
"{0}, {1}", reader.GetName(0), reader.GetName(1))
Do While reader.Read()
Console.WriteLine( _
"{0}, {1}", reader.GetInt32(0), reader.GetString(1))
Loop
reader.Close()
connection.Close()
Console.WriteLine( _
" @OutputParm: {0}", command.Parameters("@OutputParm").Value)
Console.WriteLine( _
"RETURN_VALUE: {0}", command.Parameters("RETURN_VALUE").Value)
15 12月, 2008
SQLServer2000でDEFAULTカラムをalter tableする場合、
制約として宣言されてしまうので、まずは制約を削除する必要がある。
Oracleなどでは確か、カラムのプロパティ情報として持っているので
そのまま、Dorp出来たと思う。
クエリアナライザから「DF__hoge_tbl__hogecol__xxx」を消してもよいが
GUIが使用できない場合に「DF__hoge_tbl__hogecol__xxx」の「xxx」の部分が
分からないので確認する方法は以下となる。
(注意:別の方法があれば教えてください(汗))
まずは以下のようなSQLを投げると
ALTER TABLE hoge_tbl ALTER COLUMN hogecol INT
メッセージ 5074、レベル 16、状態 1、サーバー HOGEDB、
行 1オブジェクト ‘DF__hoge_tbl__hogecol__xxx’ は 列 ‘hogecol’ に依存しています。
これで名前が分かるので、このキーを
ALTER TABLE hoge_tbl DROP CONSTRAINT DF__hoge_tbl__hogecol__xxx
あとは好きにして(笑)
15 12月, 2008
下のコメントついでに2005の処理
2005からはTry~Catchっぽくなってる
(2000方式でももちろんOK!)
BEGIN TRY
BEGIN TRANSACTION --トランザクションの開始
--SQL文1
COMMIT TRANSACTION --トランザクションを確定
END TRY
--例外処理
BEGIN CATCH
ROLLBACK TRANSACTION --トランザクションを取り消し
PRINT ERROR_MESSAGE() --エラー内容を戻す
PRINT 'ROLLBACK TRANSACTION'
END CATCH