2007年12月26日
VistaでWebサービスを動かす
忙しすぎてブログの更新がすっかり滞っているだんなです。
うちの会社にもやっとVista機が来て、今まで作ったアプリケーションを動かそうとしたら軒並みNG!(泣)
C#+Webサービスで動作させているアプリケーションを動作させるまでの手順を簡単にまとめておきます。
・SQLServer
SQLServer Management Studioは管理者権限で起動すること。
・IIS
IISは全てのオプションをインストールすること。IIS6互換モードとかが無いとちゃんと動きません。
参考にしたサイト
マイクロソフト-Windows Vista での Visual Studio 2005 の問題点の一覧
↓クリックして頂けるとうれしいです(ワンクリック詐欺ではないです(笑))
人気blogランキングへ
日本ブログ村へ
投稿者 danna : 15:55 | コメント (0) | トラックバック
2007年5月25日
DataSetへの変更が反映されない
昨日に続いて、VisualStudioネタを。(VisualStudio2005)
独自で作ったDataSetにデザイナで項目を追加して、いざプログラムで使おうとしても追加した項目がないというエラーが表示されてしまいました。ソリューションエクプローラーで見るとそのDataSetのDesigner.csとその他のファイルの親子関係が外れていました。下記の手順で復旧できました。(参考にしたサイトはこちら→開発いろいろ)
①該当のデータセットを構成するファイル(.xsd, .Designer.cs, .xsc, .xss)をバックアップする。
②ソリューションエクスプローラから、上記ファイルを削除する。
③バックアップしておいたファイルを元に戻す。
④ソリューションエクスプローラ内の該当のクラスを右クリックし、「追加」→「既存の項目」と選択し、データセットの.xsdファイルを選択する。
以上です。②を実行するとファイルが削除されてしまったので①と③が必要なのですが、これはVSSを使用している環境だからかも知れません。
これは不具合じゃないんですかね・・・。
↓クリックして頂けるとうれしいです(ワンクリック詐欺ではないです(笑))
人気blogランキングへ
投稿者 danna : 00:00 | コメント (0) | トラックバック
2007年5月24日
CrystalReportsのデザイナーでDataSetの変更内容が反映されない
VisualStudio付属のCrystalReportsの帳票で、使用しているDataSetに列の追加・削除や属性の変更をした時、「フィールドエクスプローラ」右クリック→「データベースの照合」で変更内容が反映されないことがある。(VisualStudio2005)
VSSを再設定したり色々やった結果、下記の手順でうまくいきました。(こちらも参考にさせていただきました→「むかむか クリスタルレポート入門」)
①DataSetを修正する。
②CrystalReportsのデザイナを起動し、「データベースの照合」を実行する。
※ダメな場合は、①が終了した後VisualStudioを再起動して②を再度実行する。
CrystalReportsの資料って余りないんだよね・・・。難しいです(泣)
↓クリックして頂けるとうれしいです(ワンクリック詐欺ではないです(笑))
人気blogランキングへ
投稿者 danna : 00:00 | コメント (0) | トラックバック
2007年4月11日
SQL Server の信頼関係接続に関連付けられていません
勤怠の締めまでまだ数日有るのに残業時間が余裕で100時間を超えてしまいました。もう体力的に限界のだんなです。ところでたまには、仕事ネタを。
スマートクライアントで作られているアプリをローカルのISS+SQLServerExpressEditionで動作させようとしたところ、「SQL Server の信頼関係接続に関連付けられていません」というエラーメッセージが表示され、どうにもこうにも動きません。
ネットで色々探したところ、マイクロソフトのホームページにサポート情報がありました。→ココ
SQLServerの認証方法の設定を変更する必要があるんですね。動いて良かった。(´▽`) ホッ
↓クリックして頂けるとうれしいです(ワンクリック詐欺ではないです(笑))
人気blogランキングへ
投稿者 danna : 16:41 | コメント (0) | トラックバック
2006年8月28日
テキストファイルI/O
C#でテキストファイルのI/Oを行う場合には、StreamReader, StreamWriterクラスを使用する。
ファイル内でシフトJISコードを扱う場合、コンストラクタの第2パラメータに「System.Text.Encording..GetEncording(932)」を必ず指定すること。
【読み込み】
StreamReader reader = new StreamReader(strFilePath, System.Text.Encording..GetEncording(932));
while ((strData = reader.ReadLine) != null)
{
1行処理
}
reader.Close();
【書込】
StreamWriter writer = new StreamWriter (strFilePath, System.Text.Encording..GetEncording(932));
for (intLoopCount = 0; intLoopCount < 行数 - 1; intLoopCount++)
{
writer.WriteLine(書込データ)
}
writer .Close();
投稿者 danna : 18:22 | コメント (0) | トラックバック
2006年7月25日
或る月の最終日を算出
或る月の最終日を計算。
VB6までだと、その月の1日の1ヶ月後の-1日という計算だった。.NETでも同じ手法が使えるが下のやり方の方がスマートな気がする。
DateTime dtLastDay = new DateTime(dtDay.Year, dtDay.Month, DateTime.DaysInMonth(dtDay.Year, dtDay.Month));
※dtDay:任意の日付が入ったDateTime型変数
投稿者 danna : 19:46 | コメント (0) | トラックバック
2006年7月24日
.NETでDoEvents
VB6まであったDoEventsは.NETになると次の通り。
【C#の例】
System.Windows.Forms.Application.DoEvents();
投稿者 danna : 18:39 | コメント (0) | トラックバック
C#.NETでExcelファイル(XP2003)を操作
1.参照の追加で「COM」から「Microsoft Excel xx.x Object Library」を追加。
2.using 句に「using Excel = Microsoft.Office.Interop.Excel;」を追加。コーディング省力化のため
3.既存のExcelファイルを開くサンプル
Type.Missingはパラメータを省略できる場合、VBは単純にパラメータを書かなければいいけど、C#の場合にはこれを指定すると省略されたことになる。
Excel.Application objExcelApp = new Excel.Application();
Excel.Workbooks objExcelBooks = (Excel.Workbooks)ExcelApp.Workbooks;
// 既存ファイルオープン
objExcelBooks.Open("C:\\TEMP\\SAMPLE.XLS",
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing,
Type.Missing);
// Excelファイルを非表示にする
objExcelApp.Visible = true;
// ここにExcelファイルの操作を記述
// 操作開始
// 操作終了
// 終了
objExcelApp.Quit();
// COMオブジェクト解放
System.Runtime.InteropServices.Marshal.ReleaseComObject(objExcelBooks);
System.Runtime.InteropServices.Marshal.ReleaseComObject(objExcelApp);
投稿者 danna : 10:05 | コメント (0) | トラックバック
2006年7月10日
VB.NETの関数を使うには
C#などVB以外からVBの間数を使う方法
1.参照設定にMicrosoft.VisualBasicを追加
2.Microsoft.VisualBasic名前空間の中で各メソッドを使用することが可能
投稿者 danna : 14:19 | コメント (0) | トラックバック
2006年4月18日
CreateProcess()でこける
CreateProcess()でEXEを実行しようとするとエラーになることがある。
第9引数、第10引数の構造体を0クリアすることで解決したみたい。
bRtnCode = CreateProcess(NULL, pszCmdLine, NULL, NULL, FALSE,
CREATE_NO_WINDOW, NULL, NULL, &startupinfo, &processinfo);
このようにWindowを表示しないからといって、STARTUPINFO構造体を適当に設定するとメモリー関係のエラー(GetLastError()の戻り値が998(?))になる。
GetLastError()の戻り値はこのサイトを見ると簡単にわかります→Window Tips - by AOK
投稿者 danna : 18:17 | コメント (0) | トラックバック
2006年4月12日
構造体のアラインメント
/Zpコンパイルオプションで指定→詳しくはMSDNで。
投稿者 danna : 15:44 | コメント (0) | トラックバック
2005年10月 5日
関数のポインタ
関数のポインタを利用して、その関数をコールする事が可能。
・プロトタイプ宣言
bool (*pFunction)(int, long);
・実装
pFunction = CompValue;
:
:
if ((*pFunction)(10, 20) == true) {
:
:
}
:
bool CompValue(int iValue, long lValue)
{
if (iValue < lValue) {
return false;
} else {
return true;
}
}
投稿者 danna : 15:43 | コメント (0) | トラックバック
2005年9月20日
ファイル/フォルダ属性の取得
GetFileAttributes()関数で取得可能。もちろん、設定はSetFileAttributes()
ファイルでもフォルダでもOK。
投稿者 danna : 16:32 | コメント (0) | トラックバック
2005年8月 9日
IDiscRecorder::QueryMediaTypeのfMediaFlagsについて
第2パラのfMediaFlagsは英語のMSDNだと3種類の値を返すってことになっているがどうもビットに意味を持っていそうな気がする。
MEDIA_BLANK(ブランクディスク)=0x1
MEDIA_RW(CD-R/Wなど)=0x2
MEDIA_WRITABLE(CD-Rなど)=0x4
だからCD-Rのブランクメディアは0x04 + 0x01 = 0x05が返ってくる。
投稿者 danna : 17:43 | コメント (0) | トラックバック
Mutex(ミューテックス)
スレッドがリソースに排他アクセスできるようにする同期オブジェクト
投稿者 danna : 12:20 | コメント (0) | トラックバック
2005年8月 4日
IMAPI
Image Mastering APIの略。要はCD-R/CD-RW/DVD等にデータを記録する為のAPI。
下記サイトからC++のサンプルソースをDLできるけど、.NETでないと編集、実行できない。(VC6でチャレンジしたが挫折)
http://msdn.microsoft.com/vbasic/downloads/samples/default.aspx?pull=/library/en-us/dv_vstechart/html/vctchvisualcplusplusmsdnarticles.asp
投稿者 danna : 14:44 | コメント (0) | トラックバック
2005年8月 2日
MonitorEnumProc()コールバック関数
第2パラがNULLのとき、第3パラはディスプレイモニタの長方形領域の座標がRECT型で格納されているとの事。ここで疑問。
環境:
WindowsXP Pro+SP2
1280×1024@32bit
RECT型の戻り値
.top=0
.left=0
.bottom=1024
.left=1280
この.bottomと.leftはディスプレイのサイズ(解像度)か長方形領域の外側の座標を指していると推測される。複数モニタで試してないので何ともいえないが・・・。
投稿者 danna : 14:24 | コメント (0) | トラックバック
2005年8月 1日
WINVER
VC6.0でWindows2000以降の新機能を使用する場合、下記のように書かないとエラーになる場合がある。
#define WINVER 0x500
但し、windows.hに下記のように書いてあるので、コンパイル時にWarningが出るけど気にしなくてOK。
#if(WINVER >= 0x0500)
#pragma message ("")
#pragma message ("NOTE: WINVER has been defined as 0x0500 or greater which enables")
#pragma message ("Windows NT 5.0 and Windows 98 features. When these headers were released,")
#pragma message ("Windows NT 5.0 beta 1 and Windows 98 beta 2.1 were the current versions.")
#pragma message ("")
#pragma message ("For this release when WINVER is defined as 0x0500 or greater, you can only")
#pragma message ("build beta or test applications. To build a retail application,")
#pragma message ("set WINVER to 0x0400 or visit http://www.microsoft.com/msdn/sdk")
#pragma message ("to see if retail Windows NT 5.0 or Windows 98 headers are available.")
#pragma message ("")
#pragma message ("See the SDK release notes for more information.")
#pragma message ("")
#endif
投稿者 danna : 16:47 | コメント (0) | トラックバック
2005年7月25日
True/False
【C系の場合】
True=0以外
False=0
【VBの場合】
True=-1
False=0
投稿者 danna : 16:18 | コメント (0) | トラックバック
3項演算子
忘れちゃいそうなのでメモ。
( A ? B : C )・・・Aが真(0以外)の場合、Bを実行。偽(0)の場合、Cを実行。
ExcelのIf関数。AccessのIIf関数と同じようなもの。