問題タブ [interbase]

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 投票する
3 に答える
1526 参照

delphi - dbExpressは、TimeStampフィールドのミリ秒部分を読み取りません

最近、一部のDelphi/InterBaseアプリケーションが表示されます

「他のユーザーによってレコードが見つからないか、変更されていません」

これらは、dbExpressのデフォルトのTSQLQuery / TClientDataSet(またはTSimpleDataSet)コンポーネントを使用します。

データベーステーブルで、フィールドが非dbExpressアプリケーションによってミリ秒単位で格納されていることがわかりました。

dbExpressがDBからミリ秒を読み取らず、更新テーブルのSQLステートメントの「where」条件でその切り捨てられた値を使用したため、更新する一致するレコードがなかったようです。

更新:DelphiアプリケーションでTSQLTimeStampフィールドを使用しています。OnBeforePostハンドラーがフィールド値を変更していません。

アップデート2

IBExternals.pasに見られるように、PCTimeStructureにはミリ秒の部分がありません。したがって、「設計上」、Delphi(2009)のInterBaseではミリ秒はサポートされていません。

Delphiの新しいバージョンでmsサポートが追加されているかどうか誰かが知っていますか?

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

string - delphi / interbase で文字列を blob として挿入クエリを作成する方法

クエリを挿入したい:

INTO A_TABLE (BLOB_FIELD) 値 (MY_BLOB_VAL) に挿入

しかし、exのデルファイには文字列値しかありません:

発生する問題は、文字列からブロブへの変換です。

では、インターベース BLOB フィールドに文字列を挿入するにはどうすればよいでしょうか?

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

php - php-interbase のデフォルトのトランザクション動作を変更

長時間 (24 時間以上) 実行される PHP CLI スクリプトがいくつかあります。それらは通常の「コミット」を行いますが、スクリプトのクラッシュが原因で、孤立したトランザクションに問題が発生した可能性があります。

私の解決策は、次のようにトランザクションを作成することでした。これを調査したのは 1 年前であり、これらの設定の正確な理由をよく思い出せませんでしたが、データベースに関するいくつかの問題を解決したようです。

$dbh = ibase_connect($dbhost, $dbuser, $dbpass); $trans = ibase_trans(IBASE_WRITE+IBASE_COMMITTED+IBASE_REC_VERSION+IBASE_WAIT,$dbh);

PHP 5.3.5 にアップグレードしたところ、ibase_trans 行がセグメンテーション違反を引き起こしていることがわかりました。php ibase_trans ページには、次の注意事項があります。

「この関数の動作は PHP 5.0.0 で変更されました。ibase_trans() への最初の呼び出しは、接続のデフォルトのトランザクションを返しません。」

したがって、私の質問は、デフォルトのトランザクションのトランザクション引数を設定できるかどうかです...二次的な質問ですが、とにかくこれをしようとする点が完全に欠けているかどうか!

ありがとう

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

apache - Apache Chroot - ibase_connect の失敗

mod_chroot を実行している Apache 2。基本的な html および php スクリプトに問題なくアクセスできます。

このテスト スクリプトは cli php を使用して正常に動作するため、接続文字列に問題がないことはわかっています。

ただし、これを Chrooted Apache で実行すると、エラー メッセージが返されます。

Warning: ibase_connect(): Can't access lock files' directory /tmp/firebird in /html/app/webroot/test2.php

これは本当に奇妙に思えます。/tmp/firebird が存在し、CLI でスクリプトを実行するときに firebird によって使用されます。

--with-interbase=/opt/firebird/ を使用した PHP をコンパイルしたとき

これが理にかなっており、誰かが考えていることを願っています!

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

php - PHP で Interbase トランザクションを使用するにはどうすればよいですか?

Interbase DB に接続された PHP サイトがあります。DB には、ユーザーがロードして画面に表示できる注文が含まれています。ユーザーは注文を変更して保存できます。これは機能しますが、2 人のユーザーが同じレコードを読み込んで保存すると、最後に保存したユーザーが行った変更が注文に含まれます。

2 番目のユーザーが保存しようとすると、注文が変更されたことを示すメッセージがポップアップ表示され、注文の保存が停止されます。

トランザクションと上記のシナリオを実装するデスクトップ アプリがあるので、interbase にはこれを行うためのトランザクションがあることを知っています。しかし、Web環境でPHPで同じことを行う方法がわかりません。

デスクトップアプリはデータベースを常に開いたままにし、トランザクションは読み取られてからコミットされるまで存続します。PHP では、データベースとトランザクションは、各クエリが実行されたときにのみ開かれ、作成されます。私が読んだことから、コミットされていない場合、トランザクションはスクリプトの最後にロールバックされます。

注文をロードするコード

PHP コード:

コードの保存順

PHP コード:

誰かが私が間違っている場所を教えてくれれば、それは素晴らしいことです. または、誰も Interbase を使用していない場合、MySQL をどのように使用しますか? テーブルロック、タイムスタンプルートをたどりたくありません。

ありがとうレイ

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

sql-server - SQL Server と Interbase データベースを同期する最良の方法は何ですか?

SQL サーバー データベースを Interbase DB と同期する必要があります。Interbase はライブ DB であり、メイン アプリケーションはこれで動作します。現在、お客様は SQL サーバー データベースを作成し、それをライブのインターベース データベースと毎日 1 回同期したいと考えています。すべての履歴レポートは、SQL Server データベースから生成されます。

Interbase DB には、タイムスタンプや時間を含む列はありません。したがって、新しい (および変更された) レコードを識別する方法が見つかりませんでした。何か案が?

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

database - Interbase データベースの行を更新するにはどうすればよいですか?

Interbase テーブルに同じデータを持つ 2 つの行があります。テーブルに主キーがありません。そのテーブルの単一の行を更新するにはどうすればよいですか?

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

c# - .Netを使用してベース間データベーステーブルをSQLServerデータベースに同期する

SQLServerデータベースをInterbaseDBと同期する必要があります。InterbaseはライブDBであり、メインアプリケーションはこれで動作します。今、顧客はSQLサーバーデータベースを作成し、それをライブのベース間データベースと1日1回同期したいと考えています。InterbaseデータベースとSQLServerデータベースの両方を比較し、SQLServerをInterbaseServerからのすべての変更とマージするようにスケジュールできるアプリケーションを作成したいと思います。c#.Netを使用してこれを行う方法はありますか?

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

count - Interbase/Firebird で Count(*) を高速化する方法

Interbase は世代別データベースです。

count(*)ロールバックはほぼ瞬時に行われますが、永遠にかかるため、これは素晴らしいことです。
これは、count がインデックスを使用できる MySQL など とは異なります。

これを見るまで理由がわかりませんでした:

COUNT に含まれる 1 つまたは複数の列でインデックスを使用できる場合でも、現在のトランザクション分離でそれらが表示されるかどうかを確認するには、すべてのレコードにアクセスする必要があります。

ウィキペディア: http://en.wikipedia.org/wiki/InterBase

Interbase/Firebird で高速カウントを行う方法に関するヒント

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

firebird - ISQLを使用してスクリプトを実行する

単純なisqlスクリプトを作成していますが、機能していません。何が問題なのかを見つけるために助けが必要です。
データベースに接続してSQLファイルを実行する必要があります。これはscript.sqlと呼ばれる私のスクリプトです:

を使用してデータベースに接続しようとすると、次のようになります。

このフォローメッセージが表示されます。: