問題タブ [getschematable]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - getschemaTable から列サイズとデータ型を取得するにはどうすればよいですか?
私は初心者で、データベース内のいくつかのテーブルから列 NAme 、サイズ (最大長) 、および DataType を取得しようとしています。次のコードを実行すると、すべての列の種類と名前が表示されることを期待しています (私はしませんでしたSize を参照する方法を見つけます。私は ColumnSize を使用しましたが、DataColumn にはこのメソッドの定義が含まれていないと言われていますが、実行すると次のように表示されます: IsColumnSetSystem.Boolean これはコードです:
c# - SqlDataReaderを使用して列のDataTypeとSizeを取得するには?
検証を行うために指定された各列のデータ型を取得しようとしていますが、すでに試しましたgetSchemaTable
が、値のないテーブルのスキーマしか得られません。
たとえば、データベースにテーブルがあり、列名: がありid_declarant
ます。から値のデータ型とサイズを取得したいid_declarant
。
コードは次のとおりです。
vb.net - アクセス "IIf" 条件がテーブルのスキーマを台無しにする
db ファイル内の他のテーブルの結合を使用して生成されたいくつかのテーブルを含む ms-access ファイルがあります。テーブルの 1 つ ("Pin_Codes" と呼ばれる) は、スクリプトでアクセス "IIf" 条件を取得して、列に入力します。同じための SQL スクリプトは次のとおりです。
そのため、表 Pin_Codes には PINCODE (文字列型) と DISTRICT (文字列型) という名前の 2 つの列があります。
このアクセス ファイルをアプリケーションにインポートすると、最初に accdb ファイル内のすべてのテーブルのスキーマがチェックされます。しかし、Pin_Codes のスキーマを取得すると、DISTRICT 列の max_length は約 577346 になります (文字列型であるため、255 である必要があります)。ただし、PINCODE の max_length は 255 で問題ありません。
ダミーの IIf 条件 (常に真の条件があり、真と偽の部分が同じ) でも、このエラーが発生します。さらに、DISTRICT 列の IIf 条件を削除すると (そして、tableB_column または "NA" と入力すると)、問題が解決し、長さの値は 255 になります。
アプリケーションによって適切に解釈されているソース テーブル TableA、tableB、および tableC のスキーマを確認しました。
この問題の原因は何ですか?これを克服する方法はありますか (「IIf」条件を廃止する以外に)?
NB スキーマは、System.Data.DataTable.GetSchemaTable()、スキーマ テーブルを取得するための OleDB 関数、および JetOLEDB4.0 dll の両方を使用して取得およびテストされました。
c# - シーケンスとトリガーによって埋められる Oracle 列の決定 (SQLServer のような ID 列)
列が自動的にいっぱいになるかどうかを判断する必要があります。
ほとんどの場合、これは PrimaryKey 列で行われます。これは、Oracle データベースと SQLServer で行う必要があります。
私の質問の背景は(理解を深めるためだけに)、仕様にあるXMLファイルを読んでいます。要素タグはテーブルの列名と一致します。テーブルはユーザーによって提供され、解析する必要があるxmlファイルを選択します。その後、テーブル内の列の名前と一致する場合、xml ファイル内のすべての要素を探しています。
xml ファイルが主キー情報を提供するかどうかは明確ではありません。そうかもしれませんが、そうではないかもしれません。列の名前がxml内にある場合、すべて問題ありません。しかし、そうでない場合は、調べる必要があります
- 私は xml ファイルで指定された PK 列を持っています。
- その PK 列に値が自動的に入力される場合
これが指定されていない場合は、例外を発生させる必要があります。そのため、そのスキーマ情報を特定する必要があります。
SQLServer では問題ありません。ID 列の場合、IsAutoIncrement は true になります。
このようなテーブルスキーマデータを読み取ります(短い例のみ)
今、私は欲しい情報をすべて手に入れています。残念ながら、Oracle では IsAutoIncrement プロパティが false に設定されています。
SQLServerのように、DBMSによって列に指定されていない場合、GetSchemaTable()は列がシーケンスによって設定されているかどうかをどのように判断する必要があるかを知っています。それは私には明らかです。
これを解決する方法はありますか?テーブル内の列がトリガー内のシーケンスによって埋められるかどうかを判断していますか? 多分トリガー本体を解析していますか?
助けてくれてありがとう
私のソリューションは次のようになります。
c# - C#クエリからエイリアスまたは相関名とともにベーステーブル名を取得する
以下を使用して SQL クエリを解析しようとしています。
ベース テーブル名を取得しますが、テーブル エイリアス名も検索する必要があります。
クエリの例:
正規表現ソリューションを確認しましたが、「Author a」、「ZipCode cd」、「City c」、「[State] s」を抽出する方法がわかりません