[seasar-dotnet:2357] Re: QuillでのSQLServerの接続について

志水正幸 [E-MAIL ADDRESS DELETED]
2014年 3月 28日 (金) 11:41:47 JST


久保(jflute)さん、竹内さん、五十嵐さん、taknb2nchさん

志水です。
こんな単純なハマリでお恥ずかしい限りのHELPメールだったのですが
みなさまアドバイスありがとうございます。
涙がチョチョギレました。。

アドバイスを元に問題解決しました。

taknb2nchさん、やはりSQLServerの場合は別途dll等は必要ないんですね。

五十嵐さんアドバイスの改行の件は大丈夫でした。

試しに竹内さんアドバイスの接続文字列を参考にしたら接続できました。
※今度C/S開発する際に参考にさせてもらいます。

久保さんアドバイスのページは、調査していた際に読んでいて(読んだ気になっていた?)
このHELPメール出す前にもポート番号指定をしてみてはいたのですが
ポート指定の仕方を間違っていたようです。
わたしの先入観ですね。IPアドレスのあとに「192.168.1.49:1433\MSSQLSERVER」としていました。

それで、元々の接続文字列でも試してみたところ、
両方での接続が可能でした。

"Data Source=tcp:192.168.1.49\MSSQLSERVER,1433;Initial Catalog=db_11;User ID=user11;Password=passwd"

"Server=192.168.1.49\MSSQLSERVER,1433;Database=db_11;User ID=user11;Password=passwd"


というわけで、皆様のおかげで無事解決できました。
本当にもう、なんと言っていいやら、情けないOrz
今度からちゃんと読もうと思いました。
ありがとうございました。。


> 久保(jflute)です
>
> 志水さん、こんにちは。
> DBFlute.NETご利用ありがとうございます。
>
> ちょっと.NETでSQLServerにつないでる環境が手元にないので、
> 見ただけでは合ってるかどうか不明なのですが、
> JDBCとか他からうまくいってるということは、
> もう Quill.config の書き方と考えるのが自然ですが...
>
> ポート番号って、指定しなくてもOKなんですよね?
> (以下のサイトを参考にしただけですが、
> 色々な書き方を試してみたいところですね)
> http://shiba-yan.hatenablog.jp/entry/20110103/1294060564
>
>
> # どなたか、.NETでSQLServerにDBアクセスされている方で、
> # 「接続文字列をこんな感じで書いてるよ」
> # みたいな情報ありましたらコメント頂けると助かります。
>
> (2014/03/28 9:11), 竹内学 wrote:
>> 竹内です。
>>
>> APS.NET <http://APS.NET> ではなくて、クラサバ・アプリなので、あまり参
>> 考にはならないかもしれませんが...
>>
>> 私の場合は、直接、設定ファイルに記述するのでは無くて
>> IConnectionString を実装したクラスで接続文字列を生成する様にしており
>> ます。
>> # やっぱり、パスワードが平文で記述されるのは抵抗があるので。
>>
>> -- App.config --
>> <quill>
>> <dataSources>
>> <dataSource name="DataSource">
>> <provider>SqlServer</provider>
>> <connectionString>xxx.Helpers.ConnectionStringHelper</connectionString>
>> <class>Seasar.Extension.Tx.Impl.TxDataSource</class>
>> </dataSource>
>> </dataSources>
>>
>> <configPath>App.dicon</configPath>
>>
>> <assemblys>
>> <assembly>Seasar.DynamicProxy</assembly>
>> <assembly>Seasar.Dao</assembly>
>> <assembly>Seasar.Dxo</assembly>
>> <assembly>Seasar.Windows</assembly>
>>
>> <!-- Microsoft SQL Server .NET Data Provider を使用する場合に必要で
>> す。 -->
>> <!--<assembly>System.Data</assembly>-->
>> </assemblys>
>> </quill>
>>
>> <userSettings>
>> <xxx.Properties.Settings>
>> <setting name="DatabaseDataSource" serializeAs="String">
>> <value>localhost\SQLEXPRESS</value>
>> </setting>
>> <setting name="DatabasePort" serializeAs="String">
>> <value>1433</value>
>> </setting>
>> <setting name="DatabaseInitialCatalog" serializeAs="String">
>> <value>xxx</value>
>> </setting>
>> <setting name="DatabaseUserID" serializeAs="String">
>> <value>xxx</value>
>> </setting>
>> <setting name="DatabasePassword" serializeAs="String">
>> <value>xxx</value>
>> </setting>
>> </InventoryVerification.Properties.Settings>
>> </userSettings>
>>
>>
>> -- ConnectionStringHelper.cs --
>> namespace xxx.Helpers {
>> /// <summary>
>> /// データベース接続文字列ヘルパー クラス
>> /// </summary>
>> public class ConnectionStringHelper: IConnectionString {
>>
>> /// <summary>/// データベースへの接続文字列を取得する
>> /// </summary>
>> /// <returns>接続文字列</returns>
>> public string GetConnectionString() {
>> SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
>>
>> builder.ApplicationName = "xxx";
>> builder.DataSource = string.Format("tcp:{0},{1}",
>> Properties.Settings.Default.DatabaseDataSource,
>> Properties.Settings.Default.DatabasePort);
>> builder.InitialCatalog =
>> Properties.Settings.Default.DatabaseInitialCatalog;
>> builder.UserID = Properties.Settings.Default.DatabaseUserID;
>> builder.Password =
>> DecryptPassword(Properties.Settings.Default.DatabasePassword);
>>
>> return builder.ConnectionString;
>> }
>> }
>>
>>
>> これで生成される接続文字列 は
>>
>> Data Source=tcp:localhost\SQLEXPRESS,1433;Initial Catalog=xxx;User
>> ID=xxx;Password=xxx;Application Name=xxx
>>
>> となっています。
>>
>> ご参考までに。
>>
>>
>>
>> -- 
>> 竹内 学 <mailto:mtakeuchi @ ailesys.co.jp <mailto:mtakeuchi @ ailesys.co.jp>>
>> 株式会社エールシステム
>> 〒384-0083 長野県小諸市大字市665-9
>> Phone: 0267-25-5990
>> Facsimile: 0267-26-1324
>>
>>
>> _______________________________________________
>> seasar-dotnet mailing list
>> seasar-dotnet @ ml.seasar.org
>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
> 五十嵐です。
>
> メールを送った直後に過去のスレッドから見つけました。
> http://ml.seasar.org/archives/seasar-dotnet/2012-August/002187.html
>
>
> 2014年3月28日 9:18 五十嵐大士 <igarashi.h @ apps.buildsystem.jp>:
>
>> 五十嵐です。
>>
>> 以前、接続文字列の中に改行があると接続できないとの投稿があった気がします。
>> providerとconnectionStringの変更だけで、
>> 別途dll等は必要ないと思います。
>>
>> SQLServer2005のC/Sシステムでしか今確認できないのですが、
>> ご指定の接続文字列で別PCから接続できました。
>>
>> SqlConnectionを直接
> 2014-03-27 19:38 GMT+09:00 志水正幸 <ie2m-smz @ asahi-net.or.jp>:
>> お世話になっております。
>> 志水と申します。
>>
>> ASP.NETで開発しているのですが、
>> ORACLE接続していたプロジェクトをSQLServer接続に変更しています。
>> しかし、どうにも接続できずエラーとなってしまい
>> すっかりハマってしまいましたOrz
>> 何がいけないのか、どなたかご指摘いただけたらと思います。。
>> 変更箇所はdataSources部分だけでいいと思ったのですが
>> ORACLEの場合は、Oracle.DataAccessのDLLの参照が必要でしたが、
>> SQLServerも何か必要なのでしょうか?
>>
>>
>> ちなみに以下の設定でクライアントから、dbfluteのバッチでテーブル生成でき
>> ます。
>> map:{
>> ; driver = com.microsoft.sqlserver.jdbc.SQLServerDriver
>> ; url = jdbc:sqlserver://192.168.1.49:1433;databaseName=db_11;
>> ; schema = dbo
>> ; user = user11
>> ; password = passwd
>> ; propertiesMap = map:{includeSynonyms=true}
>> ; variousMap = map:{
>> ; objectTypeTargetList=list:{TABLE;VIEW;SYNONYM}
>> ; tableExceptList = list:{prefix:MLOG$_}
>> }
>> }
>> クライアントのAccessからODBC経由で接続もできました。
>> でも、心配なので念のためDBサーバ上のIISにアプリを設置して動作させて
>> みましたが、同じように接続エラーになりました。
>>
>>
>> 【環境】
>> 開発OS:Windows7 64bit
>> DBサーバ:Windows2008std
>>
>> .NET ASP C# FrameWork4.0
>> SqlServer2012
>> Quill(s2container.net-1.4.0)
>> dbflute-0.8.9.54
>>
>>
>> 【エラーメッセージ】
>> 場所 Seasar.Framework.Util.DataSourceUtil.GetConnection(IDataSource
>> dataSource)
>>
>> [NextException]
>> System.Data.DataException
>> コネクションのオープンに失敗しました。データベースは起動しているか?接続
>> 文字列、プロバイダの設定は正しいか?ご確認をお願いします。
>>
>> [NextNextException]
>> System.Data.SqlClient.SqlException
>> SQL Server への接続を確立しているときにネットワーク関連またはインスタン
>> ス固有のエラーが発生しました。サーバーが見つからないかアクセスできませ
>> ん。インスタン ス名が正しいこと、および SQL Server がリモート接続を許可
>> するように構成されていることを確認してください。 (provider: SQL Network
>> Interfaces, error: 26 - 指定されたサーバーまたはインスタンスの位置を特定
>> しているときにエラーが発生しました)
>> ErrorCode = -2146232060
>>
>>
>> 【Quill.configの接続文字列】
>> <dataSources>
>> <dataSource name="WebDS"> ←このデータソースを読んでいるのは確認済み
>> <provider>SqlServer</provider>
>> <connectionString>"Data
>> Source=192.168.1.49\MSSQLSERVER;database=db_11;User
>> ID=user11;Password=passwd"</connectionString>
>> <class>Seasar.Extension.Tx.Impl.TxDataSource</class>
>> </dataSource>
>> </dataSources>
>>
>>   →"Server=192.168.1.49\MSSQLSERVER;Database=db_11;User
>> ID=user11;Password=passwd"
>>    ↑↑↑接続文字列もためしましたがダメでした↑↑↑
>>
>>   →IntegratedSecurity=trueつけたらサポートされていないって怒られました。
>>
>>   →192.168.1.49の後ろの「\」を「\\」でも試してみましたが同じエラーでした。
>>
>> <assemblys>
>> <assembly>Seasar</assembly>
>> <assembly>Seasar.Dao</assembly>
>> <!-- Oracle Data Provider for .NET を使用する場合に必要です。 -->
>> <!-- <assembly>Oracle.DataAccess, version=2.112.1.0, Culture=neutral,
>> PublicKeyToken=89b483f429c47342</assembly> -->
>> </assemblys>
>>
>>
>> _______________________________________________
>> seasar-dotnet mailing list
>> seasar-dotnet @ ml.seasar.org
>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
> _______________________________________________
> seasar-dotnet mailing list
> seasar-dotnet @ ml.seasar.org
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>

-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://ml.seasar.org/archives/seasar-dotnet/attachments/20140328/255bdf59/attachment.html>


seasar-dotnet メーリングリストの案内