火鸟在简单查询中抛出异常


Firebird throwing exceptions at simple queries

我正在为我的朋友制作一个外部插件,这是我一生中第一次涉及处理Interbase/Firebird引擎。

我有这张表:

CREATE TABLE T_KLIENT (
ID_KLIENTA INTEGER NOT NULL,
NAZWA PL_VARCHAR250 NOT NULL,
WOJEWODZTWO PL_VARCHAR50 NOT NULL,
MIASTO PL_VARCHAR50 NOT NULL,
POCZTA POCZTA NOT NULL,
ADRES PL_VARCHAR50,
OS_KONTAKT PL_VARCHAR100,
TELEFON PL_VARCHAR30,
FAX PL_VARCHAR30,
NIP PL_VARCHAR30,
EMAIL PL_VARCHAR100,
ID_SCENARIUSZA LICZBA,
RAPORTOWANIE LICZBA,
UWAGI PL_VARCHAR250,
KRS PL_VARCHAR30,
FAKTUROWANIE LICZBA,
KONTO PL_VARCHAR50,
AC KOD_OZNACZENIA_NULL,
STATUS LICZBA,
KOD_KLIENTA PL_VARCHAR30 NOT NULL,
NR_KLIENTA PL_VARCHAR30 NOT NULL,
ID_KATEGORII LICZBA DEFAULT -1,
ID_ODDZIALU INTEGER default 0,
RYCZALT_KWOTA KWOTA,
GODZ_RYCZALT LICZBA DEFAULT 0,
KWOTA_GODZ_POZARYCZALT KWOTA,
ONLINE_LOGIN PL_VARCHAR10,
ONLINE_PASSWORD PL_VARCHAR30,
PRZEDSTAWICIEL_KOD KOD_OZNACZENIA_NULL,
F_PROWIZJA_KAPITAL "DProcenty" DEFAULT 0,
F_PROWIZJA_ODSETKI "DProcenty" DEFAULT 0,
ORGANREJESTROWY PL_VARCHAR250,
REGON PL_VARCHAR100,
STRONA_WWW PL_VARCHAR100,
TELEFON_GSM PL_VARCHAR30,
BRANZA PL_VARCHAR100,
RODZAJ_PODMIOTU PL_VARCHAR100,
NR_DOMU PL_VARCHAR10);

此函数

 function FDB_addClient($client_name, $client_address, $client_postal, $client_city, $client_country, $client_vat) {
    $get_total_client_count = ($this->FDB_getTotalClientCount()+1);
    $set_query = ibase_query($this->fb_db, "INSERT INTO T_KLIENT VALUES (".$get_total_client_count.", '".$client_name."', '---', '".$client_city."', '".$client_postal."', '".$client_address."', 'Brak', 'Brak', 'Brak', '".$client_vat."', 'Brak', NULL, NULL, 'Brak', NULL, NULL, 'Brak', NULL, NULL, '".$client_vat."', '".$client_vat."', -1, 0, 0, 0, 0, 'Brak', 'Brak', NULL, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL)") or die(ibase_errcode().'-'.ibase_errmsg());
    if ($set_query) { return true; } else { return false; }
}

而这个错误我无法摆脱

Warning: ibase_query(): exception @1 @1 @1 @1 in C:'WebServ'httpd'core.php on line 37
-836-exception @1 @1 @1 @1

不幸的是,互联网对Firebird的任何体面支持都非常差,而且非常令人沮丧。

我将不胜感激任何提示。提前谢谢你!

@Edit

指定列无济于事。

function FDB_addClient($client_name, $client_address, $client_postal, $client_city, $client_country, $client_vat) {
    $get_total_client_count = ($this->FDB_getTotalClientCount()+1);
    $set_query = ibase_query($this->fb_db, "INSERT INTO T_KLIENT (ID_KLIENTA, NAZWA, WOJEWODZTWO, MIASTO, POCZTA, ADRES, OS_KONTAKT, TELEFON, FAX, NIP, EMAIL, ID_SCENARIUSZA, RAPORTOWANIE, UWAGI, KRS, FAKTUROWANIE, KONTO, AC, STATUS, KOD_KLIENTA, NR_KLIENTA, ID_KATEGORII, ID_ODDZIALU, RYCZALT_KWOTA, GODZ_RYCZALT, KWOTA_GODZ_POZARYCZALT, ONLINE_LOGIN, ONLINE_PASSWORD, PRZEDSTAWICIEL_KOD, F_PROWIZJA_KAPITAL, F_PROWIZJA_ODSETKI, ORGANREJESTROWY, REGON, STRONA_WWW, TELEFON_GSM, BRANZA, RODZAJ_PODMIOTU, NR_DOMU) VALUES (".$get_total_client_count.", '".$client_name."', '---', '".$client_city."', '".$client_postal."', '".$client_address."', 'Brak', 'Brak', 'Brak', '".$client_vat."', 'Brak', NULL, NULL, 'Brak', NULL, NULL, 'Brak', NULL, NULL, '".$client_vat."', '".$client_vat."', -1, 0, 0, 0, 0, 'Brak', 'Brak', NULL, 0, 0, 0, 0, NULL, NULL, NULL, NULL, NULL)") or die(ibase_errcode().'-'.ibase_errmsg());
    if ($set_query) { return true; } else { return false; }
}
此问题

已通过更新 fbclient 得到解决.dll以获得更易于理解的错误和读取嵌入到数据库中的触发器。

感谢所有参与的用户。