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

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

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

Re[1]: SQLサーバでVBの関数を使用したい


(過去ログ 129 を表示中)

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

■76581 / inTopicNo.1)  SQLサーバでVBの関数を使用したい
  
□投稿者/ ようこ (1回)-(2015/07/24(Fri) 11:01:54)

分類:[.NET 全般] 

お世話になります。
VS2010を使用しております。
SQLサーバでVBの関数(全角を半角に変更する)関数を使用したいのですが、そんなことは可能でしょうか?
下記のように追加クエリを実施しているのですが受注NO2は全角で入っている場合もあるため、半角に変換して追加したく思います。
SQLで全角から半角に変換する関数は存在しないみたいでした。
parameters.addwithvalueなどを使用し、VBの関数(StrConv関数)を使用して半角に変換する方法はございませんでしょうか?
よろしくお願いします。


dim SQL as string
SQL = "insert into " _
& "TK1002_赤伝データ(受注NO)" _
& " select 受注NO2" _
& " from " _
& "T102_受注入力"
引用返信 編集キー/
■76582 / inTopicNo.2)  Re[1]: SQLサーバでVBの関数を使用したい
□投稿者/ WebSurfer (629回)-(2015/07/24(Fri) 11:26:40)
No76581 (ようこ さん) に返信

「SQLサーバ」とは何ですか? 正しい製品名、バージョン、エディションは書けませんか?

SQL Server であるとすると、デフォルトでインストールすると照合順序は、Japanese_CI_AS
となって、半角 / 全角を区別しないのですが、そのあたりは理解されているでしょうか?

何にせよ、クエリに「VBの関数(全角を半角に変更する)関数を使用」はできないので、
クエリとして SQL Server に渡す前に VB.NET のコードで何とかするほかなさそうです。
引用返信 編集キー/
■76584 / inTopicNo.3)  Re[2]: SQLサーバでVBの関数を使用したい
□投稿者/ PANG2 (87回)-(2015/07/24(Fri) 11:52:45)
SQL CLRとか
引用返信 編集キー/
■76585 / inTopicNo.4)  Re[1]: SQLサーバでVBの関数を使用したい
□投稿者/ 魔界の仮面弁士 (424回)-(2015/07/24(Fri) 12:31:28)
No76581 (ようこ さん) に返信
> SQLサーバでVBの関数(全角を半角に変更する)関数を使用したいのですが、そんなことは可能でしょうか?
半角の文字数はさほど多くないので、力技でおきかえてしまうとか。
http://babydaemons.hatenablog.com/entry/20080226/1210302971


> parameters.addwithvalueなどを使用し
AddWithValue の利用はお奨めしません。きちんと型を明示しましょう。
http://2next.me/archives/274


> VBの関数(StrConv関数)を使用して半角に変換する方法はございませんでしょうか?
SQL CLR を試してみるとか。
http://www.sunvisor.net/db/sqlclr/sqlstrconv
https://code.msdn.microsoft.com/windowsdesktop/10-SQLCLR-VB-b0f8af58
引用返信 編集キー/
■76588 / inTopicNo.5)  Re[1]: SQLサーバでVBの関数を使用したい
□投稿者/ WebSurfer (631回)-(2015/07/26(Sun) 11:17:40)
No76581 (ようこ さん) に返信

最初に言うべきことだったかも知れませんが・・・

ユーザー入力でクエリの文字列を組み立てているように見えますが、もしそうなら
それは SQL インジェクションの問題があるので止めましょう。

パラメータ化クエリを用いれば、SQL インジェクションの防止だけでなくパフォー
マンスの向上にも役立ちます。

具体的には、以下の記事を見てください。

パラメータ化クエリ
http://surferonwww.info/BlogEngine/post/2012/02/02/Parameterized-query.aspx

全角 / 半角の変換は、パラメータに値を代入する前に VB.NET のコードで行うか、
それ以前に全角文字のユーザー入力は受け付けないようにしておくことで対応でき
ると思います。

「パラメータに値を代入する」というのは、上の記事のコード(C# ですが)で言
うと以下の部分です。

command.Parameters["@Category"].Value = TextBox1.Text;
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -