問題タブ [dbexpress]

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.

0 投票する
4 に答える
17325 参照

sql - Delphi (Dbexpress) で列名を取得する

このSQLコマンドを使用して列名を取得しています:

しかし、実行されたSQLコマンドの結果をどのように使用できるかわかりません!

たとえば、この方法では列名を文字列値として抽出できず、次のエラーが発生しました = 操作はサポートされていません:

0 投票する
2 に答える
916 参照

delphi - ClientDatasetへの転送時の文字列の切り捨て

Firebird 2.1、DevArtおよびDelphi 2010のDBExpressドライバーを使用しています。Delphi2006で動作していたレポートの一部が動作を停止し、「算術例外、数値オーバーフロー、または文字列の切り捨て」が発生したことを示すエラーメッセージが表示されました。私のコードのこの時点でエラーが発生しました:

エラーの原因となった場所をSQLステートメントで見つけました。

T.sCodeはVarchar(10)フィールドです。私の結論は、クエリがdsProviderにデータを返し、dsProvider.Dataがcds.Dataに渡されると、cdsコンポーネントが最初に受け取った値に基づいてフィールド幅を設定するということです。「iif」をCASEステートメントに変更すると、同じエラーメッセージが表示されます。私はこれを行うことで問題を回避することができました:

これはCASTなしのDelphi2006で機能していたため、新しい動作はTClientDatasetの更新によるものと思われます。古い、より寛容な行動をとることは素晴らしいことです。苦情なしにこれを受け入れるようにClientDatasetを構成する方法はありますか、それともiifおよびCASEステートメントに基づく文字列の結果をCASTするようにユーザーに指示する必要がありますか?

0 投票する
2 に答える
1551 参照

delphi - Delphi 2010 および dbexpress firebird ドライバー

Chau Chee-Yang ( http://sites.google.com/site/dbxfirebird/ )から dbexpress firebird ドライバーについて知りました。

情報がほとんどないためインストールが難しいと感じました。接続は成功しましたが、いくつか疑問が生じます: データ エクスプローラーを使用してデータベースに接続しようとすると、次のエラーが表示されます。

sqldataset のコマンド テキストでクエリを生成しようとすると、delphi から次のエラーが表示されます。

ドライバーのインストールで何か間違ったことをした場合、SelectSql.add ('select *.... in real time. sqldataset の代わりに SQLTable を配置すると、 data. sqldataset の CommandText から直接 SQL 命令を書き込めないのは何か問題があると思います。

感謝と敬意

0 投票する
1 に答える
230 参照

delphi - TSQLConnection.SetTraceEventを使用するとスタックが破損しますか?

スレッドごとに新しいTSQLConnectionが作成されるマルチスレッドアプリケーションを作成しました。トレース(TSQLConnection.SetTraceEventまたはTSQLMonitoring)を使用しようとすると、期待どおりにトレース結果が得られますが、その後、データベース機能を使用しようとすると、メインスレッドが不安定になります。アプリケーションは例外「0x004dffcfでのアクセス違反:アドレス0xfffffff2の書き込み」をスローし、IDEのコールスタックは「7c90327antdll.RlConvertUlongToLargerInteger+0x3c」と「7c90e48antdll.KiUserExceptionDispatcher+0xe」の繰り返し行を示し、一番上の行は「Control」です。 ReadControlName(???)"。

それで、トレース関数はバグがあり、マルチスレッドアプリケーションでは機能しませんか、それとも私のアプリケーションに隠れたバグがありますか?見つける方法は?

Delphi2007を使用しています。

編集メインスレッドに2つの別々の接続がある場合でも、例外が発生しているようです。テストアプリケーションを作成してみます。

0 投票する
1 に答える
1161 参照

delphi - マスター/詳細クライアント データセット内のレコードをコピーする delphi dbexpress

レコードの情報をマスター/詳細クライアント データセットから新しいレコードまたは既存のレコードにコピーするにはどうすればよいですか。

例えば請求書100番のデータを請求書150番にコピーしたり、請求書100番の情報を新しい請求書にコピーしたい

IBXでは、storedproceduresでそれを行いましたが、更新を適用すると、「待機トランザクションなしでロックの競合」というclientdatasetで問題が発生しています。情報がすでにサーバー側にあるためだと思います。

前もって感謝します

0 投票する
1 に答える
1828 参照

mysql - MySQL 5のutf8データにはどのdbExpressServerCharSetが必要ですか?

ニュースグループで見つかった情報に基づいて試しServerCharSet=utf8てみましたが、それでも、特殊文字/ウムラウトがクライアントデータに正しく表示されません。ServerCharSet=UTF8

Delphi2009と組み込みのdbExpressドライバーを使用します。フィールドデータは、AsWideStringを使用して取得されます。

0 投票する
3 に答える
1479 参照

delphi - Delphi/DBExpressでのメモリリーク

私のアプリケーションには奇妙な問題があります。そのメモリ使用量は時々一度に数百メガバイト増加し、最終的にはアプリケーションがフリーズします。アプリケーションはDelphiで作成されており、データベース、COM(OPC用)およびTCP/IPを使用します。

FastMMを使用すると、メモリ使用量のスクリーンショットをたどることができます。そのテーブルの読み方は完全にはわかりませんが、何かが296463552バイト(0x100fb000、その「マジックナンバー」ですか?)を3回割り当てたようです。

メモリ使用量

何か案は?Delphi-MM以外のメモリ割り当てを追跡する方法はありますか?

FastMM4.96でDelphi2007を使用しています。

編集:

IMallocSpyを使用してCOMメモリ割り当てを追跡する小さなヘルパークラスを作成しました。これが私が得たものからの抜粋です:

したがって、問題はデータベース接続にあるようです。UpsceneのFirebirdドライバーにFirebird2.1、DBExpress、InterXpressを使用しています。

Edit2: これは同様の問題を分析しているようです、少なくともここと同じ行に焦点が当てられています:http ://www.yac.com.pl/mt.texts.sqlexpr-2.en.html

0 投票する
1 に答える
730 参照

delphi - dbexpress のマスター/詳細の問題

Firebird 2.3 を使用して Delphi 2010 / dbExpress で作成されたマスター / 詳細アプリケーションがあります。問題が見つかりました。

詳細に同一のデータ行が 2 つまたは 3 つ以上ある場合、そのうちの 1 つのデータを変更すると、他の行のデータも変更されます。これは、更新で、invoice_id とシリアルのみがキーとデータとして使用されるためだと思います。どちらの場合も等しい場合、更新は 2 つの場合で行われます。

マスター データ Invoice_id、シリアル、customer_id、日付 1、A、1.12 / 12 / 2010

詳細データ Invoice_id, serial, qty, description, Price 1, A, 10, BOXES OF SOME STUFF, 52.52 1, A, 10, BOXES OF SOME STUFF, 52.52

これを修正するには、フィールド ltes name ir line_no を使用します。このフィールドでは、各行が異なる番号を持つため、次のようにデータを区別して更新できます。

Line_no, Invoice_id, serial, qty, description, Price 1.1, A, 10, BOXES OF SOME STUFF, 52.52 2.1, A, 10, BOXES OF SOME STUFF, 52.52

したがって、情報は同じですが、更新の情報を区別するために line_no もあります

clientdataset で、クライアント側でこれを行う方法を知っている人は誰でも、

どうもありがとうございました

0 投票する
0 に答える
1447 参照

oracle - BCB: BDE から dbexpress へ、BCD 例外

TSQLStoredProcedure に問題があります。コードは次のとおりです。

param "A" は、形式で整数として宣言されています (プログラムでは 29 です)。また、ストアド プロシージャにはエラーがありません。私はそれを確信しています。データベースは Oracle 11g です。ちなみに、storedproc を実行すると例外が発生しました。

BDE ではすべて正常に動作していましたが、dbexpress を使用すると、この問題が発生します。数日間インターネットで検索しましたが、答えが見つかりませんでした。

事前に感謝し、私の英語についてはご容赦ください。

フランチェスコ

アップデート

Webで検索しました。次の場所で興味深いものを見つけました。

https://forums.codegear.com/thread.jspa?messageID=43223&tstart=0 http://www.delphigroups.info/2/8/750511.html

私はいくつかのテストを行うことにしました:

できます。同じではない

または TSQLStoredProc を使用します。そこで、TSQLQuery によって pl/sql ストアド プロシージャを呼び出します。「AsString」を使用して値をパラメーターに渡します。変。dbexpress はどのようにタイプをマップしますか? 前もって感謝します。

0 投票する
2 に答える
411 参照

c++builder - tsqlconnectionが開いているかどうかを確認するにはどうすればよいですか?

ログインに失敗した後:

「if」はtrueを返します。接続が本当に開いているかどうかを確認するにはどうすればよいですか?クエリを実行して例外をキャッチする必要がありますか?前もって感謝します。

フランチェスコ