SQLServerWindows7パソコンのこと

Windows7(x64)よりMS Access2010(x86)ODBC経由にてSQL Server 2008R2へアクセスさせる

1 Mins read

■クライアント環境
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」を使用する

Read more
ApachePHPSQLServerWindows ServerWindows7パソコンのこと

Windows7 Apache2.4.4 PHP5.4.22 SQL Server 2008R2接続 開発環境構築について

1 Mins read

■環境クライアント
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指定で接続!

Read more
.NETSQLServer日記

SQLServer2000 ストアドでOutputを取得する

1 Mins read

これも覚書、前にもくらった記憶が(苦笑)

ストアドから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)
Read more
SQLServer日記

SQLServer2000でalter tableでDEFAULTカラムがある場合

1 Mins read

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

あとは好きにして(笑)

Read more
SQLServer日記

SQLServer2005のストアドでTransaction

1 Mins read

下のコメントついでに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
Read more