VB.net 教えてgoo ともに初心者です
至らぬ点はご容赦ください。
前提として
動作環境はWindows7
Visual Studio2013とInputman8.5Jでクライアントを構築しています。
IBMのMQを使ってホストと電文データをやり取りするシステムです。
下記マイクロソフトのサイトに、Type.GetFieldsメソッドの説明で以下のように記載があります。
https://msdn.microsoft.com/ja-jp/library/aa33246 …
「GetFields メソッドから返されるフィールドは、アルファベット順や宣言順などの特定の順序で返されるわけではありません。したがって、フィールドが返される順序に依存するようなコードは避ける必要があります。」
上記、返されるフィールドの順序ですが、これが変化する条件が知りたいです。
ホストから受けた電文データをType.GetFieldsメソッドを使って構造体に格納し、処理をします。
電文データの先頭から、定義体で指定した各項目のサイズ分を構造体に格納していく、というロジックですが、特定の1機能だけランダムなタイミングで電文データがバラバラの状態で格納されることがあります。
上記構造は共通処理化しており、約170箇所で使用していますが、現在のところ上記現象が起こるのは対象の1機能のみです。
返されるフィールドの順序が変化する条件を特定し、何とか対応を限定できないかと考えております。
お知恵を貸してください。
No.1ベストアンサー
- 回答日時:
直接の回答は持ち合せていません。
「フィールドが返される順序に依存するようなコードは避ける必要があります。」
とあるのだから、別の方法を考えるべきでは?
フィールド名の順番をStringの配列 FieldNameList に入れておいて
For each fieldName as String in FieldNameList
datatype.GetField(fieldName)
等と、GetFieldで順番に処理するとか。
GetFieldsで得た配列をソートするとか。
https://oshiete.goo.ne.jp/qa/9704214.html
で、Microsoftに聞こうとしてますが、問合せできたとしても「固定する方法」は教えてくれないと思います。
「原理的に、制御不可能だということが明確になった」なんてこともあるかも。
ご回答ありがとうございます。
おっしゃる通りだと思います。
ただ対応範囲があまりに広く、テストまで考えるとなんとか対応範囲を限定できないか、とあがいておりました。
対応方針を変えようと思います。
どうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Visual Basic(VBA) エクセル VBA 条件付き書式 簡略化したい 2 2022/06/02 17:46
- その他(IT・Webサービス) ホームページにカウント数を表示する 2 2022/10/28 10:37
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- 法学 不正アクセス禁止法の扱いについて 4 2022/03/23 18:13
- その他(プログラミング・Web制作) python コードについて(初学者です) 3 2023/07/20 14:44
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ファイルメーカーでの文字列の...
-
Accessで年月日のデータ...
-
ACCESS、時間ごとの集計の仕方は?
-
Access VBAで行ラベルが定義さ...
-
エクセルVBAでUserFormを起動し...
-
Accessのマクロでモジュールを...
-
callで順に実行されるプロシー...
-
likeとsubstrの使いわけについて
-
PL/SQLカーソルの2重FORループ...
-
Accessの数値から時間に変換す...
-
ODBCリンクの際にACCESSでは読...
-
access adoのトランザクション
-
SQLサーバで和暦から西暦に変換...
-
キャッシュを使わずにSELECTを...
-
特定の日付が第何週目にあるか...
-
テーブルの主キーをdate型...
-
エクセルVBA 今日の日付行...
-
SQL文のエラー
-
異なるスキーマのビューを元に...
-
800万件のテーブル読み込み...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessで年月日のデータ...
-
ACCESS、時間ごとの集計の仕方は?
-
データ型について教えてください。
-
フォーム上で小計など自動計算...
-
Excelのピボットテーブルで数も...
-
ファイルメーカーでの文字列の...
-
ファイルメーカーでフィールド...
-
アンパサンドを挿入したい
-
Access→Oracleへ移行後MAX()が...
-
Libre Office でフィールドコー...
-
VB.NET Type.GetFieldsメソッド...
-
wordで文字の上に線を引きたい...
-
ACCESSデータベースのメモ型フィー...
-
Accessで、『"A"以外の場合"--"...
-
FileMaker pro12 アンケート
-
Accessのマクロでモジュールを...
-
Access VBAで行ラベルが定義さ...
-
エクセルVBAでUserFormを起動し...
-
今日の日付が入った行のデータ...
-
VBA プロシージャの名前の取得
おすすめ情報