問題タブ [jet]
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.
sql - SQLを介して複数のブール値を合計するのに最適な方法は?
特に、特定の属性を示す約30列のブールフラグを含むテーブルがあります。次のように、頻度で並べ替えて、列名とともにレコードセットとして返します。
これまでの私の努力は同様のことを達成することができますが、次のような条件付きSUMを使用して列の属性を取得することしかできません。
さらに、クエリは30個すべてのSUM / IIFですでに少し扱いにくくなっており、手動による介入なしでは属性数の変更を処理しません。
属性列の最初の6文字は同じ(属性)であり、テーブル内で一意です。列名にワイルドカードを使用して、該当するすべての列を取得することはできますか?
また、結果をピボットして、並べ替えられた2列のレコードセットを取得できますか?
私はAccess2003を使用していますが、クエリは最終的にExcelからADODBを介して行われます。
ms-access - 別のJetmdbへの埋め込み接続文字列でmdwファイルを指定します:可能ですか?
Jet(mdb)クエリで次の構文を使用して、別の.mdbファイルからデータを選択できます。
あるいは
これを拡張して、ワークグループセキュリティ(別名ユーザーレベルセキュリティ)を使用したいと思います。ユーザーIDとパスワードを指定する方法を知っています。
ただし、これは、両方のmdbが同じmdwを共有している場合にのみ機能します。
他のmdbを保護するために使用されるmdwファイルのパスをどのように指定しますか?出来ますか?そうでない場合は、なぜですか?
PS私は何年も前にこのAccessニュースグループの投稿でこの質問をしましたが、返事がありませんでした。Access MVPがそれが不可能であると私に確信させた後、私はあきらめました。詳細は思い出せませんが、基盤となるアーキテクチャと関係があります(ワークスペースは、1つのワークグループファイルのみをサポートし、Jetクエリが新しいワークスペースをインスタンス化するメカニズムはありません。とにかくそのようなものです)。
私の新たな関心は、このSOコメントによって引き起こされました。
excel - xml スプレッドシートの読み方
xml スプレッドシート (*.xls) を生成するサード パーティ ツールがあります。このスプレッドシートを読み取って処理する別のプログラムがあります。生成された xml スプレッドシートの内容は 5 列のテーブルで、私のプログラムはそれらに対して選択クエリを実行します。生成されたスプレッドシートへの接続を開くときに問題に直面しています。「{"外部テーブルが予期された形式ではありません。"}」と表示されます。私の Connectin 文字列は "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + excelFileName + ";Extended Properties=\"Excel 8.0;HDR=YES;\""; です。この文字列を変更する必要はありますか? データセットを使用して dataSet.ReadXml(excelFileName); を呼び出してみました。しかし、データセットには私のテーブルが含まれていません。xml スプレッドシートの読み方に関する情報はありますか?
お時間をいただきありがとうございます、CS
c# - C#で日付に基づいてdatetimeをクエリする方法
DateTime 列を持つ MS-Access データベースがあります。
例: 03/08/2009 12:00:00 AM
。
次のような日付に基づくクエリが必要です。
としてデータを表示したい03/08/2009 12:00:00 AM
。
このクエリを C# で記述するにはどうすればよいでしょうか。私を助けてください。
ms-access - Constraintの名前を取得する方法は?
MS Accessデータベースを使用していて、C#2.0からデータをフルにしようとしています。ADOXを使用してconstriant名(例:主キーのフィールド名ではなく主キーの名前)を取得するにはどうすればよいですか?
よろしくお願いしますMadhu
ms-access - ACE / JetのIN演算子またはCHECK制約が「壊れています」か?
次の表を考えてみてください。制約は少し巧妙ですが、私の主張を示すのに十分単純です。物事を非常に単純にするために、制約の基準にはリテラル値のみが含まれることに注意してください。この列ID
が存在するのは、テーブルに少なくとも1つの列(!!)が必要であるが、その列は制約に関与していないためです。少し手間がかかりますが(そのため名前が付けられています)、これは完全に合法的な構文であり、クエリに追加WHERE 0 = 1
してSELECT
ゼロ行を返すようにするのと似ています。
(標準SQL DDLコード、ACE / JetのANSI-92クエリモードで実行されます)
以下INSERT
が成功します。
これは予想される動作です。述語5 = NULL
はに評価される必要がありUNKNOWN
ます。はINSERT
「疑いの利益を与えられて」成功します。問題ありません。
IN
演算子を使用したこの同様の例を考えてみましょう。
制約が噛み付くため、以下INSERT
は失敗します。
少なくとも私にとって、これは予想外の行動です。最初の例と同じ理由で、5 IN (0, 1, NULL)
が再び評価されUNKNOWN
、成功することを期待します。INSERT
2番目の例のロジックは、次の3番目の例と同じであると思います。
以下INSERT
が成功します。
これは予想される動作です。
SQL Serverで3つの例すべてをテストしましたが、すべてが期待どおりに機能します。つまり、3つのINSERT
ステートメントすべてが成功します。実際、INFORMATION SCHEMAを調べると、2番目の例のSQL Serverは、「役立つ」(grrr)として制約の句を書き直して、IN
演算子を次のように置き換えていることがわかります。
したがって、ACE / Jetの場合、ここで「壊れている」とは何ですか:IN
演算子またはCHECK
制約?
NULL可能な列を使用して問題を再現するためのVBAコードを次に示します。また、制約を削除すると、INSERT
が成功することを示します。
編集:私はこれを試してみようと思った:
SELECT NULL IN(1); --NULLを返します
SELECT 1 IN(NULL)-ゼロ、つまりFALSEを返します
nhibernate - JET を使用しているときに NHibernate が無効な ID 選択を返す原因は何ですか?
私たちのアプリケーションは (悲しいことに) MDB バックエンド データベース (つまり、JET エンジン) を使用しています。
データベースに永続化される項目の 1 つは、「イベント」オブジェクトです。オブジェクトは、Autonumber フィールドである ID (EventLogID) を持つテーブルに永続化されます。NHibernate のマッピングは次のとおりです。
ログ ファイルによると、NHibernate が ID を取得しようとすると、値「0」を受け取る場合があります。その後、Flush が呼び出されると、NHibernate はアサーション エラーに悩まされます。
なぜこれが起こっているのか誰にも示唆できますか?さらに良いことに、誰かがそれを修正する方法を提案できますか?
よろしく、リチャード
c# - Access Dbの一時ldbファイルを削除するにはどうすればよいですか
ASP.NET プロジェクトがあります。DB に接続してから、接続オブジェクトを閉じて破棄しています。しかし、だれかが私のサイトにアクセスすると、MS Access は一時的な dbname.ldb を作成します。サーバーからオリジナルの mdb ファイルをダウンロードしたいのですが、mdb ファイルにアクセスできません。サーバーにldbファイルがあると何もできません。mdb ファイルがロックされており、移動できません。だから問題は何ですか?接続を開いて閉じています。では、接続が閉じられた後にこのldbファイルが削除されないのはなぜですか。
sql - 異なるサーバーのリンクされたテーブルから結合するときのMSAccessのパフォーマンス?
2つの異なるデータベースサーバーからのリンクテーブル(たとえば、SQLServerデータベースからのテーブルとOracleデータベースからのテーブル)を含むMS Accessデータベースがあり、これら2つのテーブルを結合するクエリを作成する場合、Access(またはJetエンジン)はどのようになりますか、私は推測しますか?)このクエリを処理しますか?最初に各テーブルでいくつかのSELECTを発行して、参加しているフィールドを取得し、一致する行を特定してから、それらの行に対してさらにSELECTを発行しますか?
c# - カンマ区切りのテキストファイルをC#DataTableに読み取ると、列が255文字に切り捨てられます
CSVからSQLにインポートしています。そのために、CSVファイルを読み取り、schema.iniを使用して一時的な.txtファイルに書き込みます。(なぜこの一時ファイルに書き込んでいるのかはまだ正確にはわかりませんが、それが現在のコードの動作方法です)。そこから、次の接続文字列(ASCIIファイルの場合)を使用して、OleDB経由でDataTableをロードしています。
私たちが抱えている問題は、255文字を超えるフィールドが切り捨てられることです。私はこの問題についてオンラインで読んだことがありますが、デフォルトでは、テキストフィールドはこのように切り捨てられるようです。
レジストリ設定 ImportMixedTypes=Majority Type
を設定TypeGuessRows=0
し、テキストとして解釈されなくなることHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel
を期待しています。mycolumns
その後、一時txtファイルはCSVファイルから正しく書き込まれていますが、を呼び出すdataAdapter.Fill
と、結果のDataTableの値は切り捨てられたままになります。
問題の列の定義は次のとおりです。CommaDelimited#txt注2 false 234 true 130 0 0
どんな助けでもいただければ幸いです。現時点では、この問題を解決するためにサードパーティのコードを使用することに興味はありません。組み込みのツールを使用する方法が必要です。
テーブルの定義は次のとおりです。
ありがとう、
グレッグ
幅のあるテキストを指定してschema.iniを編集しようとしましたが、役に立ちませんでした(以前はメモに設定されていました)
[CommaDelimited.txt] Format = CSVDelimitedDecimalSymbol=。Col1=メモテキスト幅5000