1. インポート元の CSVファイル と、インポート先のテーブルを用意する
2. サーバーにadministratorでログインして、コマンドプロンプトで以下のコマンドを叩く
bcp (データベース名) format nul -c -x -f (保存するファイル名) -t -U (データベースユーザー名)
例:
>bcp FILEREAD.dbo.T_TEST02 format nul -c -x -f 'D:\Backup\bulk-test02.Xml' -t -U sa
3. パスワードを聞いてくるので、パスワードを打つ
(指定したファイル名でフォーマットファイルが出来る)
4. 以下のようにすると、テーブルと同様に扱える
OPENROWSET(BULK [インポート元のCSVファイル],[上で作ったフォーマットファイル]) AS [名前(なんでもいい)]
例:
INSERT INTO T_TEST02
SELECT a.* FROM OPENROWSET(BULK 'D:\test.csv',FORMATFILE = 'D:\BACKUP\bulk-bulk-test02.Xml') AS a;
2010年1月29日金曜日
T-SQL 文字列の中から一致する部分を抽出
構文
PATINDEX ( '%pattern%' , expression )
解説
expression から、pattern に一致する部分を検索して、その先頭の文字の位置を返す
引数
pattern : 検索する文字列
expression : 検索される文字列
返り値
一致した文字列の先頭の文字の位置(1文字目は1)
一致する文字列がない場合は 0
注意
oracleのinstr関数と引数の順番が違うので注意!!!
PATINDEX ( '%pattern%' , expression )
解説
expression から、pattern に一致する部分を検索して、その先頭の文字の位置を返す
引数
pattern : 検索する文字列
expression : 検索される文字列
返り値
一致した文字列の先頭の文字の位置(1文字目は1)
一致する文字列がない場合は 0
注意
oracleのinstr関数と引数の順番が違うので注意!!!
2010年1月26日火曜日
C# カスタムコントロールのプロパティを作る
///
/// コントロールの状態を保存する変数を書く
///
private bool designVisibleView = true;
///
/// プロパティの説明を書く
///
[Category("Design"), DefaultValue(true)] ← プロパティの型によって異なる
[Description("内容をここに書く")]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
public bool VisibleView
{
set
{
designVisibleView = value;
this.panelView.Visible = designVisibleView;
}
get { return designVisibleView; }
}
・直接コントロールのVisibleに値を設定/参照すると、使用側フォームなどで値が保持されない場合がある。
・DesignerSerializationVisibility.Visible = インスタンスごと保存される。
・DesignerSerializationVisibility.Content = インスタンスの変更されたプロパティだけが保存される。
・DesignerSerializationVisibility.Hidden = プロパティは保存されない。
/// コントロールの状態を保存する変数を書く
///
private bool designVisibleView = true;
///
/// プロパティの説明を書く
///
[Category("Design"), DefaultValue(true)] ← プロパティの型によって異なる
[Description("内容をここに書く")]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
public bool VisibleView
{
set
{
designVisibleView = value;
this.panelView.Visible = designVisibleView;
}
get { return designVisibleView; }
}
・直接コントロールのVisibleに値を設定/参照すると、使用側フォームなどで値が保持されない場合がある。
・DesignerSerializationVisibility.Visible = インスタンスごと保存される。
・DesignerSerializationVisibility.Content = インスタンスの変更されたプロパティだけが保存される。
・DesignerSerializationVisibility.Hidden = プロパティは保存されない。
2010年1月25日月曜日
C# try~catch~finally
FormatException()は例外の種類らしいがよくわからん
try
{
[通常の処理]
// 例外を強制的に発生させる
throw new FormatException();
// コレでcatchに飛ぶ
}
catch (Exception exp)
{
[例外時の処理]
}
finally
{
[例外が発生しようがしまいが処理する内容]
}
try
{
[通常の処理]
// 例外を強制的に発生させる
throw new FormatException();
// コレでcatchに飛ぶ
}
catch (Exception exp)
{
[例外時の処理]
}
finally
{
[例外が発生しようがしまいが処理する内容]
}
C# 文字列の検索
// 必要な変数を宣言する
string stTarget = "ABCDEDCBA";
// 先頭から 'D' を検索し、見つかった位置を取得する
int iFind1 = stTarget.IndexOf('D');
// 3 文字目の後から 'C' を検索し、見つかった位置を取得する
int iFind2 = stTarget.IndexOf('C', 3);
// 6 文字目の後から 2 文字目の中で "CB" を検索し、見つかった位置を取得する
int iFind3 = stTarget.IndexOf("CB", 6, 2);
// 末尾から 'D' を検索し、見つかった位置を取得する
int iFind1 = stTarget.LastIndexOf('D');
// 6 文字目の後から "CDE" を検索し、見つかった位置を取得する
int iFind2 = stTarget.LastIndexOf("CDE", 6);
// 7 文字目の後から 2 文字目の中で "CB" を検索し、見つかった位置を取得する
int iFind3 = stTarget.LastIndexOf("CB", 7, 2);
string stTarget = "ABCDEDCBA";
// 先頭から 'D' を検索し、見つかった位置を取得する
int iFind1 = stTarget.IndexOf('D');
// 3 文字目の後から 'C' を検索し、見つかった位置を取得する
int iFind2 = stTarget.IndexOf('C', 3);
// 6 文字目の後から 2 文字目の中で "CB" を検索し、見つかった位置を取得する
int iFind3 = stTarget.IndexOf("CB", 6, 2);
// 末尾から 'D' を検索し、見つかった位置を取得する
int iFind1 = stTarget.LastIndexOf('D');
// 6 文字目の後から "CDE" を検索し、見つかった位置を取得する
int iFind2 = stTarget.LastIndexOf("CDE", 6);
// 7 文字目の後から 2 文字目の中で "CB" を検索し、見つかった位置を取得する
int iFind3 = stTarget.LastIndexOf("CB", 7, 2);
2010年1月21日木曜日
2010年1月20日水曜日
C# Dataset コンボボックスで選択された内容を扱う
// 選択されたアイテムを取る
System.Data.DataRowView view01 = (DataRowView)this.cbo01.SelectedItem;
// 内容を変数に取る
string str01 = view01.Row.ItemArray[0].ToString(); // 文字列を str01に 格納
int int01 = int.Parse(view01.Row.ItemArray[3].ToString()); // 数値を int01 に格納
System.Data.DataRowView view01 = (DataRowView)this.cbo01.SelectedItem;
// 内容を変数に取る
string str01 = view01.Row.ItemArray[0].ToString(); // 文字列を str01に 格納
int int01 = int.Parse(view01.Row.ItemArray[3].ToString()); // 数値を int01 に格納
2010年1月19日火曜日
IDENTITYのリセット
DBCC CHECKIDENT ([テーブル名] ,RESEED ,[次に入ってほしい数字の前の数字])
ex:
DBCC CHECKIDENT (T_MST_得意先 ,RESEED ,0)
テーブル:T_MST_得意先 に設定されているIDENTITY列が0の次から始まるようになる
ex:
DBCC CHECKIDENT (T_MST_得意先 ,RESEED ,0)
テーブル:T_MST_得意先 に設定されているIDENTITY列が0の次から始まるようになる
2010年1月18日月曜日
DataSetで謎のエラー :制約を有効にできませんでした・・・・
エラーメッセージ
「制約を有効にできませんでした。行に入力できるのは、Null 以外の値、一意な値、あるいは外部キーですが、この制約の違反が 1 つ以上の行で発生しています。」
原因
データベースのプロパティを変更した(だけ)
対処
DataSetのプロパティも変更する
「制約を有効にできませんでした。行に入力できるのは、Null 以外の値、一意な値、あるいは外部キーですが、この制約の違反が 1 つ以上の行で発生しています。」
原因
データベースのプロパティを変更した(だけ)
対処
DataSetのプロパティも変更する
2010年1月6日水曜日
T-SQLのエラー処理時のパラメータ
BEGIN TRY
SELECT 1/0;
END TRY
BEGIN CATCH
SELECT
ERROR_NUMBER() AS ErrorNumber
,ERROR_SEVERITY() AS ErrorSeverity
,ERROR_STATE() AS ErrorState
,ERROR_PROCEDURE() AS ErrorProcedure
,ERROR_LINE() AS ErrorLine
,ERROR_MESSAGE() AS ErrorMessage;
END CATCH;
SELECT 1/0;
END TRY
BEGIN CATCH
SELECT
ERROR_NUMBER() AS ErrorNumber
,ERROR_SEVERITY() AS ErrorSeverity
,ERROR_STATE() AS ErrorState
,ERROR_PROCEDURE() AS ErrorProcedure
,ERROR_LINE() AS ErrorLine
,ERROR_MESSAGE() AS ErrorMessage;
END CATCH;
登録:
投稿 (Atom)