1 名前:前スレ972 [2005/07/17(日) 20:33:58 ] VB.NETの質問全般です 過去スレ VB.NET質問スレ (Part11) pc8.2ch.net/test/read.cgi/tech/1114217190/ VB.NET質問スレ (Part10) pc8.2ch.net/test/read.cgi/tech/1109343613/ VB.NET質問スレ (Part9) pc5.2ch.net/test/read.cgi/tech/1106577850/ VB.NET質問スレ (Part8) pc5.2ch.net/test/read.cgi/tech/1102512868/ VB.NET質問スレ (Part7) pc5.2ch.net/test/read.cgi/tech/1096683017/ VB.NET質問スレ (Part6) pc5.2ch.net/test/read.cgi/tech/1088812165/ VB.NET質問スレ (Part5) pc5.2ch.net/test/read.cgi/tech/1078134703/ VB.NET質問スレ (Part4) pc2.2ch.net/test/read.cgi/tech/1065269043/ 【老若】VB.net質問スレ【男女】 (Part3) pc5.2ch.net/tech/kako/1056/10562/1056281084.html 【老若】VB.net質問スレ【男女】 (Part2) pc2.2ch.net/tech/kako/1043/10436/1043629429.html 【老若】VB.net質問スレ【男女】 pc2.2ch.net/tech/kako/1025/10258/1025848458.html
552 名前:550 mailto:sage [2005/10/02(日) 18:40:30 ] >>551 ああ、助かりました。ありがとうございます。 直接書き込みのほうが何も考えなくていいのでコーディングはラクですが、今回はグループポリシーと 連携させたPC管理や設定の履歴管理を考えているので、REGファイルにしたいのです。 アプリ上で特権の取得とか考えなくていいし。 .NETなのは、単にそれしかないから。とはいってもこれが.NETではじめて作るツール。 PerlとVBAしか使ったことないのでVB.NETの勉強もかねてます。 INIファイルと同じという理解でよいのだろうか・・・ GetProfileStringとか使える?だけど一括で取得ができない、あたりで悩んでます。 どういうアプローチがいいんだろう。テキストとして馬鹿正直に取り込んで加工?
553 名前:デフォルトの名無しさん mailto:sage [2005/10/02(日) 23:58:12 ] (´・ω・`)知らんがな
554 名前:デフォルトの名無しさん mailto:sage [2005/10/03(月) 22:46:51 ] すみません、質問です ツールバーにドロップした時に、どのボタンにドロップされたか調べるには どうすればいいのでしょう
555 名前:デフォルトの名無しさん mailto:sage [2005/10/03(月) 23:11:16 ] TB_HITTESTを使うのがベターだけど。 次善の策として、ButtonsをFor Eachで回して、 それぞれのToolBarButtonのRectangleにマウスの位置がContainsしているかどうか確認するとか。 e.X/e.Yはスクリーン座標だから、ToolBarオブジェクトのPointToClientメソッドを忘れずに。
556 名前:554 mailto:sage [2005/10/04(火) 00:21:45 ] >>555 for eachでいけました ありがとうございました
557 名前:544 mailto:sage [2005/10/04(火) 13:35:05 ] >>545 ありがとうございました。助かります。
558 名前:デフォルトの名無しさん mailto:sage [2005/10/05(水) 17:12:18 ] VB.Netでファイルに1行出力するのに 普通はどんな関数を使用するのでしょうか? 現状WriteLineで出力しているのですが 文字列を出力した際に、 文字列の最初と最後に”が付加されてしまいます。 ”が付加されないようにしたいのですが、 なにかよい関数ないでしょうか?
559 名前:デフォルトの名無しさん mailto:sage [2005/10/05(水) 17:15:27 ] まあ普通にStreamWriterのWriteLineだな。 ダブルクォーテーションが付くのは558が変なことしてるからだ。
560 名前:デフォルトの名無しさん mailto:sage [2005/10/05(水) 17:58:10 ] >>559 558です PrintLineでの出力したらうまくいったので WriteLineは使用しないことにしました。 レスありがとうございました。
561 名前:デフォルトの名無しさん mailto:sage [2005/10/05(水) 22:19:34 ] vb.netでsusieプラグイン使うのは可能でしょうか?(事前バインドでなくて動的に) どぼんだとinvoke.dllがあれば出来るとありましたが、コンパイル出来なかったのと 配布のこと考えるとちと無理かなと 他の方法があればいいのですが…
562 名前:デフォルトの名無しさん mailto:sage [2005/10/05(水) 22:29:29 ] まっとうにVB.NETだけでアンマネージドをレイトバインディングするには.NET 2.0が必要だね。 Managed C++を使えるのならそれでラップしてやれば簡単に作れるけど。
563 名前:561 mailto:sage [2005/10/05(水) 23:58:23 ] やっぱ無理すか… ついでにもう一つ質問 ホバーってホバーと見なす時間ってどこで指定するんでしょう つーか、本当はホバーじゃなくて、「マウスオーバーで選択はしないが 3秒間ポイントしたら実行」ってのがやりたいんだけど(リストビュー)
564 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 00:13:16 ] .NETの範囲内じゃ不可能だね。 Hoverの時間間隔を取得するのも.NET 2.0でようやく追加された。 //System.Windows.Forms名前空間SystemInformationクラスのMouseHoverTime静的プロパティ。取得のみ。 変更するのはWin32APIのTrackMouseEvent関数。とは言えこれの使い方は微妙かも。 それくらいなら、MouseMoveイベントとタイマを駆使すればなんとかなるかな?
565 名前:デフォルトの名無しさん [2005/10/06(木) 00:49:29 ] 質問させてください。 フォームの×や_ボタンを消して、 しかもフォームを動かせないようにするにはどのようにすればよいのでしょうか?
566 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 00:57:46 ] タイトルバーごと消して良いの? タイトルバーがあるのに動かせないのはユーザへの嫌がらせにしかならないけど。
567 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 08:52:21 ] >>565 Form.ControlBox=False Load時にLocationの値を覚えておいて、 Moveイベントが発生するたびに、覚えていたLocation値に置き換える。 でいけるんじゃね。
568 名前:デフォルトの名無しさん [2005/10/06(木) 10:15:37 ] .NETって、標準のグラフコンポーネントとかないですか? VB6.0のころはあったんですが、いくら調べても見つからないですよね。 クリレポについているみたいなんですけど、帳票じゃないやつではないですか? ご存知だったらお教えください。 よろしくお願いします。
569 名前:じゃんぬねっと mailto:sage [2005/10/06(木) 12:28:35 ] >>565 ControlBox プロパティを False にするか、 Maximize, Minimize プロパティを False にします。 移動は、API の DeleteMenu で消してしまえば OK です。
570 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 15:43:52 ] VB.Netで以下のようなINIファイルのデータを タグ名のAAAAA、キーワードのbbで値の123が取得できる 関数とかありませんでしょうか? XXXX.ini ----- [AAAAA] bb=123
571 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 16:17:40 ] >>570 .NET Frameworkにはありません。 APIを使うかStreamReaderなんかで手動で読み取りましょう。 っていうか、XMLファイルを何故使わないんですか? 使いましょう!
572 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 16:27:59 ] >>571 APIを使うことにします。GetprivateProFileStringでしょうか。 教えていただきありがとうございました。
573 名前:563 mailto:sage [2005/10/06(木) 21:50:32 ] >>564 mouseenterで大麻をイネーブル、mousemoveでディセーブル&イネーブルで 何とかなりました つか、タイマのリセットってこれでやり方合ってるんでしょか?
574 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 21:56:01 ] ドキュメントには何も書いて無いのな。 まあちゃんと動いてるのならそれで良いでしょ。
575 名前:デフォルトの名無しさん mailto:sage [2005/10/06(木) 23:37:53 ] エディタを自作するにはどうしたらいいですか? 改行マークやらを表示したいのです
576 名前:デフォルトの名無しさん mailto:sage [2005/10/07(金) 00:02:25 ] >>573 通報しますた
577 名前:デフォルトの名無しさん mailto:age [2005/10/07(金) 13:45:16 ] VB.NetでOracle9iにDB接続、切断する方法を 教えて下さい、よろしくお願いします。 (OracleClient.OracleConnectionを使う?)
578 名前:デフォルトの名無しさん mailto:sage [2005/10/07(金) 14:40:29 ] またぐぐれば数分のことを・・・。 ORACLE VB.net 入門でぐぐれば、本関係以外で最初に@ITが出てくる。
579 名前:デフォルトの名無しさん mailto:age [2005/10/07(金) 16:21:07 ] >>578 ぐぐってみました。 VB.NetでDB接続、切断するには ODP.NETをインストールしないとダメなんですか? もしくはした方がよいのですか? 何度もすいません。
580 名前:デフォルトの名無しさん mailto:sage [2005/10/07(金) 16:33:16 ] >>579 つうか、その回答も@ITの別の記事で書かれてるはずだが。 OleDBとか選択肢あるから、必要条件を自分で決めて選択してくれ。
581 名前:デフォルトの名無しさん mailto:age [2005/10/07(金) 16:45:44 ] >>580 回答ありがとうございました。 (ODP.NETを選択しました。)
582 名前:デフォルトの名無しさん mailto:sage [2005/10/08(土) 00:28:16 ] 初歩的な質問ですみません SHELLでカレントを変えたい時は呼び出す前に自分のカレント変えて、 呼び出して、また戻して、ってやるしか無いのですか
583 名前:デフォルトの名無しさん mailto:sage [2005/10/08(土) 00:42:05 ] いつまでもShellなんてレガシ使ってないで System.Diagnostics名前空間Processクラス使えという啓示。
584 名前:デフォルトの名無しさん mailto:sage [2005/10/08(土) 14:24:27 ] かなり、初心者な質問なんですが、 これを2行にわける時は どう書けば、いいのでしょうか? Dim cmd As SqlClient.SqlCommand = SqlConnection1.CreateCommand()
585 名前:デフォルトの名無しさん mailto:sage [2005/10/08(土) 14:28:08 ] >>584 Dim cmd As SqlClient.SqlCommand = _ SqlConnection1.CreateCommand()
586 名前:デフォルトの名無しさん mailto:sage [2005/10/08(土) 14:54:12 ] >>585 レスありがとうございます。 質問の仕方がまずかったみたいです。 Dim cmd As SqlClient.SqlCommand = SqlConnection1.CreateCommand() これを = で繋がないで2行に分けたいのですが、 Dim cmd As SqlClient.SqlCommand cmd = なんかこんな感じで書けないかなぁと思ったのですが。。 よろしくおねがいします。
587 名前:デフォルトの名無しさん [2005/10/08(土) 15:12:15 ] Dim cmd As SqlClient.SqlCommand cmd = SqlConnection1.CreateCommand() じゃないの?え、ちがう?すまぬ。VB.NETはちょっとかじっただけ
588 名前:デフォルトの名無しさん mailto:sage [2005/10/08(土) 15:14:13 ] >>586 VB.NETを使ったことの無い俺が言うのもアレだけど、 Dim cmd As SqlClient.SqlCommand cmd = SqlConnection1.CreateCommand() じゃダメなん?
589 名前:デフォルトの名無しさん mailto:sage [2005/10/08(土) 15:52:14 ] >>587 >>588 ありがとうございます。。
590 名前:デフォルトの名無しさん mailto:sage [2005/10/08(土) 18:50:28 ] 変数とインスタンス(実体)の違いを理解できてないってことですね。 .netというかまあ基礎から勉強しましょう。
591 名前:デフォルトの名無しさん mailto:sage [2005/10/08(土) 20:16:49 ] 他フォームへの移動なのですが、 下記のような記述でよろしいのでしょうか? Dim frmC As FormC = New FormC If A = B then frmC.Show() Me.Hide() Else xxxxx End If
592 名前:デフォルトの名無しさん mailto:sage [2005/10/08(土) 20:28:12 ] 何をもって良しとするかも判らんのにどうしろと。 自分の思い通り動いてるならいいんじゃないんですか?
593 名前:デフォルトの名無しさん [2005/10/09(日) 09:31:22 ] うちの猫をVBライクからC#ライクにしたいのですが どうしたらいいですか? VBから卒業させてやりたいんでちゅ
594 名前:デフォルトの名無しさん mailto:sage [2005/10/09(日) 21:08:25 ] まずはカッコつけさせることだな。
595 名前:デフォルトの名無しさん [2005/10/10(月) 00:07:00 ] コーディングの常識かもしれないんですが If chkVisible.Checked = True Then mblnVisible = True Else mblnVisible = False End If というコードを参考書で見るけれども mblnVisible = chkVisible.Checked では問題があるのでしょうか。 可読性の問題?
596 名前:デフォルトの名無しさん mailto:sage [2005/10/10(月) 00:10:32 ] 別に問題ないな。 私も後者の表記をするし。
597 名前:デフォルトの名無しさん mailto:sage [2005/10/10(月) 08:10:31 ] 私だと例えばそのIFブロックにもう1つ処理足したくなったときに下だと直しが面倒なので IFブロックは極力上の書き方してます
598 名前:デフォルトの名無しさん mailto:sage [2005/10/10(月) 08:42:49 ] 直しが面倒なのはイヤなのに初めて書くときに面倒なのは許容するのか 理解できんな
599 名前:595 mailto:sage [2005/10/10(月) 09:26:23 ] 上とはちょっと違うんだけど、以前外注したベンダは画面上のコントロールの値をわざわざ 変数に突っ込んで、 mblnVisible = chkVisible.Checked If mblnVisible = True Then 処理1 Else 処理2 End If という処理を書いていた。mblnVisibleを他で使うでもなく。 結構大手ベンダだったので、画面上のコントロールの値を直接つかわないとかなんとか、 俺のしらないコーディング作法があるのかなぁ、と思っていたりして。
600 名前:デフォルトの名無しさん mailto:sage [2005/10/10(月) 10:10:19 ] >>599 そのフラグを使う回数によるけど。 オブジェクト参照のスピードと変数参照のスピードの違いがあるから。 ループの中で死ぬほどのそのフラグで分岐するならば、変数にコピーして使うべき。
601 名前:595 mailto:sage [2005/10/10(月) 10:47:09 ] >>600 いや、それならわかるんだけど、使うのも一回だけ。 それも画面上の全コントロールの値を全部変数に代入してた。 単に駄目コーディングなのか・・・
602 名前:デフォルトの名無しさん mailto:sage [2005/10/10(月) 10:54:35 ] >>600 を考慮した習慣ではないかと。
603 名前:デフォルトの名無しさん [2005/10/10(月) 11:08:23 ] hotmail用のメーラーを作りたいんですが、 どこか参考になるサイトをご存知の方がいらしたら 教えていただけないでしょうか?
604 名前:デフォルトの名無しさん mailto:sage [2005/10/10(月) 11:09:50 ] どっちかってーと、 >>600 を考慮した結果何でもかんでもそれにしちゃえという安直な発想の元根付いてしまった習慣、かな。
605 名前:デフォルトの名無しさん mailto:sage [2005/10/10(月) 11:14:52 ] いや、後の拡張など考えた場合は機械的にやるのもありだとは思う。 ただ、MVCがきちんと分離できてれば、そのチェックボックスを引っ張るなんてありえないけどね。
606 名前:デフォルトの名無しさん mailto:sage [2005/10/10(月) 11:28:03 ] MVCなんて知らなくて良いから、各位仕様変更に耐えうるコードとは何かを考えてほしいす。 どのフォームがアクティブかでで引数決定したり、入力部品を計算処理から直接参照して計算とかカンベンシテクレと。 氏ね中国外注・・・
607 名前:デフォルトの名無しさん [2005/10/10(月) 11:36:29 ] chkVisible.CheckedはmblnVisibleの1条件と見るべき、たまたま条件が1つだっただけ。 従って、mblnVisible = chkVisible.Checked は良くないな。
608 名前:595 mailto:sage [2005/10/10(月) 11:41:55 ] んー、なんとなく了解しました。 まあ俺の作法が駄目ということではなさそうなので安心。 可読性と速度と保守性と一貫性を考慮してればいいよってことだよね。 MVC初めて知ったので、これから勉強。でもVB.netのユーザー入力部分だけ のコーディングにMVCもくそもないかw 分離できてるってことか。 相手してくれた方々、ありがとう。
609 名前:デフォルトの名無しさん mailto:sage [2005/10/10(月) 12:00:15 ] >>608 例えば、ユーザー入力に対するチェックだって、きちんと分離しろ。 関数化して、I/Oをきちんとすること、そこから始まりだよ。 イベント関数はそれらを呼ぶだけにする。
610 名前:デフォルトの名無しさん mailto:sage [2005/10/10(月) 12:12:28 ] 言葉遣いが偉そうな奴ってなんで例外なく無能なんだろう。。 >例えば、ユーザー入力に対するチェックだって、きちんと分離しろ。 >関数化して、I/Oをきちんとすること、そこから始まりだよ。 >イベント関数はそれらを呼ぶだけにする。 もう馬鹿丸出し。そんなの程度問題でしょ。
611 名前:デフォルトの名無しさん mailto:sage [2005/10/10(月) 12:18:44 ] >>610 出来もしない奴がよく言う言い訳だね。
612 名前:デフォルトの名無しさん mailto:sage [2005/10/10(月) 13:22:18 ] >>606 それは設計規約、コーディング規約、設計書等の記述が甘いからです。 中国人プログラマー相手であればコーディングの1行がこうなると設計書の記述から100%読めない限りダメです。 その為ブリッジSEの単価は跳ね上がるのです。 SEで来てるんなら、そいつはSEじゃなくてPGだという事で単価交渉しろ
613 名前:デフォルトの名無しさん mailto:sage [2005/10/10(月) 17:03:51 ] 複数選択する時にマウスでドラッグして選択する場合がありますが、その時の「四角い枠で 選択中」ってイベントはどうやって知ればいいのでしょう つーか複数選択解除しただけで何でselecteditemchangeが選択してたアイテム数回 発生しやがるんでしょうね
614 名前:613 mailto:sage [2005/10/10(月) 17:06:13 ] 間違えました selectedindexchangedでした
615 名前:デフォルトの名無しさん mailto:sage [2005/10/10(月) 17:10:01 ] MouseMoveでe.Buttonのチェックでもすれば?
616 名前:デフォルトの名無しさん mailto:sage [2005/10/10(月) 20:02:26 ] ソース修正後に追加した覚えのない存在しないコントロール「_label4」など が参照できないためコンパイル不可に陥るのは、vb.netの仕様ですか?
617 名前:613 mailto:sage [2005/10/10(月) 20:52:01 ] >>615 この間のイベント mousemove : mousemove mousedown ドラッグ開始 selectecindexchanged : selectecindexchanged ドラッグ終了 mouseup mousemove : mousemove ドラッグの間はmousemoveが発生しないし、mousedownの時点ではこれからドラッグ するのか分からない、 要はselectecindexchangedが連続して発生しているものなら最初の1回以外無視 したいのです
618 名前:デフォルトの名無しさん mailto:sage [2005/10/10(月) 21:27:58 ] 必然性の良く分からない要求だなぁ……。 派生クラスを作る。 フラグを用意。 OnSelectedIndexChangedで、 ・フラグが立ってれば返る。 ・Control.MouseButtonsがMouseButtons.Noneでないのなら、フラグを立てて返る。 ・どちらでもないのなら基底クラスのOnSelectedIndexChangedを呼ぶ (SelectedIndexChangedイベントに登録されたハンドラを処理する)。 OnMouseUpで、 ・フラグが立ってれば、フラグをおろし、 必要ならOnSelectedIndexChangedを呼ぶことでSelectedIndexChangedを処理させる とかどう?
619 名前:613 mailto:sage [2005/10/11(火) 00:11:46 ] ちょっと複雑に考えすぎてた 要はmousedownで右クリ、Ctrl、Shiftでスキップ用のフラグ立てるだけで良かった んでselectedindexchangedの中で処理回避してフラグ立てて、mouseupで解除する、と 要は、選択したファイルのサイズとか作成日とか表示してるのだけど、複数選択 してもどうせ最初の1つしか表示しないので、最初の1回しか表示ルーチンに 回さないようにしたかったってこと (実際チラチラして見辛かったし時間も僅かとは言え食ってたから)
620 名前:デフォルトの名無しさん [2005/10/11(火) 04:20:25 ] 文法エラー(青色の波状の下線)の場所にマウスカーソルをあてても、 何か設定を弄ったのか、エラー内容が出なくなりました。 「ツール」→「オプション」や、説明書を確認してみても分かりませんでした。 アホな質問ですみませんが、どこの設定を確認してみればいいのでしょうか。
621 名前:デフォルトの名無しさん mailto:sage [2005/10/11(火) 09:40:12 ] ASP.net、VB.NETにてウェブアプリケーションを作製しています。 DataGridコントロールのテンプレート(TextBox)に配列の内容を表示したいのですが、 以下の様に書くとエラーがでてしまいます。 なにか方法があるのでしょうか。 <asp:DataGrid id="DataGrid1" runat="server" AutoGenerateColumns="False"> <Columns> <asp:TemplateColumn HeaderText="名前"> <ItemTemplate> <asp:TextBox id="TextBox1" runat="server"><%# Container.DataItem %></asp:TextBox> </ItemTemplate> </asp:TemplateColumn> </Columns> </asp:DataGrid> Public a() As String = {"あああああ", "いいいいい", "ううううう"} Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load DataGrid1.DataSource = a DataGrid1.DataBind() End Sub
622 名前:デフォルトの名無しさん mailto:sage [2005/10/11(火) 09:55:01 ] 取りあえずエラーの内容ぐらい書こうよ
623 名前:621 mailto:sage [2005/10/11(火) 10:00:32 ] すいません。 以下のようなエラーが出ています。 例外の詳細: System.Web.HttpException: 'TextBox' に型 'DataBoundLiteralControl' の子を指定することはできません。 TextBoxのところをLabelに変更するとエラーもなく動きましたが、TextBoxだと動きません。
624 名前:デフォルトの名無しさん mailto:sage [2005/10/11(火) 10:52:47 ] すいません。自己解決しました。 TextBox部分を以下のように変えたら動きました。 <asp:TextBox id="TextBox1" runat="server"><%# Container.DataItem %></asp:TextBox> ↓ <asp:TextBox Runat="server" Text="<%# Container.DataItem %>"></asp:TextBox>
625 名前:デフォルトの名無しさん [2005/10/11(火) 16:51:08 ] Fromを最大化、最小化した際のWidth, Heightプロパティの値を取得すると、 最大、最小化時の値が取得されますが、 そのままの状態で、Normal時に戻したときのWidth,Heightの値を取得する方法はありますか? Form終了時に、Width,Heightの値を設定ファイルに記憶したいのですが、 最大、最小化時に終了した際に、最後の時点のNormal時の値を書き込みたいのです。 (次回起動時に反映させたい為)
626 名前:デフォルトの名無しさん mailto:sage [2005/10/11(火) 17:07:29 ] ResizeイベントでWindowStateがNormalの時にフィールドに保存。
627 名前:デフォルトの名無しさん mailto:sage [2005/10/11(火) 17:14:25 ] >>626 ありがとうございます。 やってみます。
628 名前:デフォルトの名無しさん [2005/10/11(火) 23:35:18 ] 構造体の初期化はどうやって行うのでしょうか? Constraction DATA dim A as integer dim B as string end Constraction dim tData as DATA Redim tDatata ←これもだめ Erase tData ←これもだめ 教えてください。
629 名前:デフォルトの名無しさん mailto:sage [2005/10/11(火) 23:38:39 ] Structure
630 名前:デフォルトの名無しさん mailto:sage [2005/10/11(火) 23:38:51 ] Dim dData As Data dData = New Data() 'むしろDim dData As Data = New Data() ところでConstractionってなんだ
631 名前:デフォルトの名無しさん mailto:sage [2005/10/11(火) 23:46:16 ] wordのスペルチェック機能を vb.netで作ったテキストエディタで利用したいんだけど(もちろんwordが既にインストールされている状態 どうすればいいの?
632 名前:デフォルトの名無しさん mailto:sage [2005/10/11(火) 23:46:21 ] ストラクチャでコンストラクタ書けばいいんでねーけ?
633 名前:628 [2005/10/12(水) 01:41:03 ] >>629 >>630 >>632 ありがとうございました。Newキーワードについて調べてみます。 Structureですね、初心者なので間違えました。
634 名前:デフォルトの名無しさん [2005/10/12(水) 09:51:17 ] ODBC接続をするアプリケーションを作成しているのですが、 接続情報が顧客によってちがいます。OdbcConnectionクラスで 接続していますが、どんなDBでも対応できるようにできますでしょうか? VC++6.0で作成したプログラムを見たことがあるのですが、 ODBC接続情報を入力する標準のダイアログが出てきました。 こういうものは、VB.NETにはないでしょうか? どなたかお聞かせ下さい。 よろしくお願いします。
635 名前:デフォルトの名無しさん mailto:sage [2005/10/12(水) 11:03:35 ] >>634 なぜにODBC? 接続情報は当然顧客毎に違うでしょうね。 DBMS差を吸収するのがODBCだと思いますが。 ユーザー名等は設定ファイルなどで記述して、接続先はインストール時に作るか手順書では? まあ、.netっぽくやるのであればOLEDBに移行すべきだと思う。
636 名前:デフォルトの名無しさん [2005/10/12(水) 14:02:16 ] 中国人のブリッジSEがODBCにしろというんですよね。 彼が言う標準のODBCダイアログというのは、どうやら、「SQL Serverログイン」のことのようですね。 ODBCデータソースアドミニストレータで、システムDSNにある特定の名前を入れるんだけど、 アクセスだとパスワードの入力要求はされないが、SQLServerでSQLServer認証を使うと、 パスワードが入力要求されるんです。 中国人BSEが言う「ODBC用の標準的な接続ダイアログ」なんて、本当にあるんですか? よろしくお聞かせ下さい。
637 名前:デフォルトの名無しさん mailto:sage [2005/10/12(水) 14:04:12 ] その中国人BSEに聞いたらあかんの?
638 名前:デフォルトの名無しさん mailto:sage [2005/10/12(水) 14:43:54 ] ACCESSで出るダイアログと同じものが出るはず VB6ではお世話になったが.NETでは使わなくなったから検証できず
639 名前:デフォルトの名無しさん [2005/10/12(水) 15:54:30 ] >>637 中国人BSEも、遠い記憶を基にして言っているので、ソースが定かではない。 結局、中国人の思いつきを、おれが調査しなくてはならない。 >>638 VB6では、どんなダイアログか分かりますか? 教えて下さい。 お願いします。
640 名前:デフォルトの名無しさん mailto:sage [2005/10/12(水) 16:06:54 ] >>639 接続先データソース名 ID パスワード の入力ダイアログが出る(はず
641 名前:デフォルトの名無しさん [2005/10/12(水) 16:56:38 ] >>640 どんなコントロールですか? コントロール名とか分かりますか?
642 名前:デフォルトの名無しさん mailto:sage [2005/10/12(水) 17:04:58 ] >>620 ですが、 fixでOS(XP)を再起動したら回復しました。 よく見たら、他のソフトも表示されておらず、 どうやらポップアップがウィンドウの背後に出ているようでした。 (些細な事で、数時間無駄にしてしまいました) 3週間位連続して使っていたのですが、まれにこんなことがあるんでしょうかね。
643 名前:デフォルトの名無しさん mailto:sage [2005/10/12(水) 17:57:30 ] >>636 それはODBC ドライバ マネージャが表示するもので、 RDOでOpenConnectionするとき、DSNが無かったり接続情報が不完全な場合に出てた。 もっぱら開発時やデバッグ用の機能で、通常のアプリケーションではDNS情報が不完全な場合は rdDriverNoPromptを指定してプロンプトを出さずにエラーにしてプログラムで処理する。 ADO.NETはもちろんADO以降そんな機能はない。 第一バックグランドで動くかもしれないプログラムが勝手に妙なプロンプトを出したらユーザーが困る。 System.Data.OdbcはOLEDBや専用の.NET Driver(SQLServerやOracle)が無い場合にやむなく使う機能。 もしプロンプトを出したいだけの理由でODBCを使いたいといってるなら却下だな。
644 名前:デフォルトの名無しさん mailto:sage [2005/10/12(水) 19:17:05 ] sub とか function の内部でローカル宣言した const に2040バイトほどの 文字列を入れるとコンパイル時にVisualStudioごと落ちるんですが、これは 仕様なんでしょうか?
645 名前:デフォルトの名無しさん mailto:sage [2005/10/13(木) 00:02:03 ] TcpClientについて質問です。 現在、DataAvailableのプロパティで、読み取りデータがあるかないかを調べ、 データがある場合はデータを読み込み、無い場合はスルー という感じで、受信待ちの形(Do Loop)にしているのですが、 WinsockのDataArrivalイベントのように、データを受信した場合にイベントなどで知リたいと思うのですが、何か良い手立ては無いでしょうか?
646 名前:デフォルトの名無しさん mailto:sage [2005/10/13(木) 01:06:22 ] BeginRead使うとか? なぜそうしたいのか分かれば代替案も出せるかも知れないけど
647 名前:デフォルトの名無しさん [2005/10/13(木) 02:04:29 ] 基本的なことで恐縮です。 タイマーについての質問です。 Form上にTimer1とTimer2の2つを実装したとします。 仮に Timer1 Interval 500ms Tickイベント時の処理時間100ms Timer2 Interval 150ms Tickイベント時の処理時間10ms とし、正確な処理時間はさほど必要ないとします。 このとき、Timer1のTickイベント処理中にTimer2の処理のタイミングが重なった場合の 動作は、処理を割り込んでくるのでしょうか?それともTimer2は待機しているのでしょうか? 要は、割り込んでほしくないときは、Timer2を止めるなどの処理が必要なのかどうかです。 逆に、Timer2の処理を優先したいときなどはどのようにすればいいのでしょうか?
648 名前:デフォルトの名無しさん mailto:sage [2005/10/13(木) 02:16:26 ] >>647 System.Windows.Forms.Timer なら割り込んでこない。
649 名前:デフォルトの名無しさん mailto:sage [2005/10/13(木) 02:34:16 ] >>648 レスサンクス。 ということは、System.Windows.Forms.Timer を使用していると 割り込んでくるな処理は不要ということですね。 逆に割り込ませたいときは、System.Timers.Timerとかかな? もう少し調べてみます。ありがとうございました。
650 名前:デフォルトの名無しさん mailto:sage [2005/10/13(木) 05:48:27 ] >>644 VisualStudioのバージョンと言語、落ちるソースを出さないと誰も相手にしないよ。
651 名前:デフォルトの名無しさん mailto:sage [2005/10/13(木) 08:19:07 ] >>649 「割り込む」とかいう言葉遣いの人が 安易にSystem.Timers.Timerとか使うと危険。 危険ってのは別に煽って言ってるわけじゃなく、本当に危険だよ。
652 名前:デフォルトの名無しさん mailto:sage [2005/10/13(木) 09:22:52 ] WindowsでのTimerって、メッセージキューにTimerイベントが置かれるだけですよ。 それを理解すれば答えは出ると思うんだが。 まあ、メッセージループを知らずに、メッセージも知らずにプログラム書けるのも一長一短だな。