我为我的朋友制作了一个外部插件,这是我生命中的第一次涉及处理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; }
}
答案 0 :(得分:0)
通过更新fbclient.dll以解决更易于理解的错误并读取嵌入数据库的触发器,解决了这个问题。
感谢所有参与的用户。