Jump to content
php.lv forumi

Firebird exception handling


veejaBraalis

Recommended Posts

Čau visapkārt.

Jau kādu brīdi cīnos ar googli un nespēju izvilkt no tās savas problēmas risinājumu.

Proti, lietoju Firebird datubāzi, kurai izveidoju testa procedūru, kura, savukārt, "izmet" exception'u.

Pieslēguma skripts kodā zemāk

$dbh = ibase_connect($db_path, "SYSDBA", $sys_pass, 'win1257') or die ("Nevar pieslēgties datu bāzei");
$sql_txt = 'execute procedure TEST;'; //procedūra, kura vienkārši izmet exception
$query = ibase_query($dbh, $sql_txt)  or die(ibase_errmsg());
$row = ibase_fetch_object($query);
ibase_close($dbh);

Sāpīgākais moments ir tas, ka atgrieztais exception's ir "Warning: ibase_query() [function.ibase-query]: exception @1 @1 in test.php on line 83

exception @1 @1".

 

"@1 @1" vietā vajadzētu būt smukam uzrakstam, bet nekā tamlīdzīga

Vienu brīdi jau jutu, ka esmu risinājumam tuvu, norādot character set'u pie pieslēguma (win1257), bet arī tas neko nelīdz. Ir kāda ideja?

Link to comment
Share on other sites

Kāds ir tas exception? firebird.msg fails ir atrodams install folderī? 100% jau vairs neatminos, bet šķiet, ka šādu prikolu redzēju pēc Firebird updeitošanas pa virsu vecajai versijai, kad kaut-kas aizgāja pa pieskari ar firebird.msg failu.

Exception ir vnkāršs uzraksts - "TESTS". firebird.msg fails arī atrodas firebird mapē. Uz ibexpert'a (db menedžera) šis exceptions tiek atgriezts, ka prieks..

Link to comment
Share on other sites

Tātad, skaidrs, ka vaika ir kaut-kur klienta galā. Ko izdod `php -i | grep -i fireb`? Vai arī pie phpinfo() Firebird sadaļā kas ir redzams? Kāda Firebird versija?

phpinfo() izdod šo..

Firebird/InterBase Support	         dynamic
Compile-time Client Library Version	 Firebird API version 20
Run-time Client Library Version	         WI-V6.3.5.13206 Firebird 2.0

Takā esmu daudzmaz zaļš gurķis iekš php, tad jautājums - kas īsti ir `php -i | grep -i fireb`? Un kā to pielietot?

Link to comment
Share on other sites

Nekas aizdomīgs.. Kāda ir paša servera versija un PHP versija?

 

Tā ir komanda, ko izpildītu no konsoles un dabūtu tieši to pašu, ko Tu ar copy/paste no phpinfo() :)

 

Aha, skaidrs.

 

Servera versija

Apache Version	Apache/2.2.14 (Win32) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l mod_autoindex_color PHP/5.3.1 mod_apreq2-20090110/2.7.1 mod_perl/2.0.4 Perl/v5.10.1

 

Un php versija ir 5.3.1.

Link to comment
Share on other sites

Es biju domājis kāda Firebird servera versija. Vairāk izskatās pēc server->client nesapasēšanas, jo @1 @1, visticamāk, tāds atnāk jau no servera.

 

Kāda OS? Windows? Atrodi fbclient.dll un paskaties versiju.

Griežās viss uz XP.

Pats firebird serveris ir 2.1

Edited by veejaBraalis
Link to comment
Share on other sites

Tad pārkopē to fbclient.dll pa virsu gds32.dll (protams, uztaisi backup)

Paldies, marrtins.

 

Atradu beidzot kas par vainu.

Lieta tāda, ka datoram uz kura rakstīju web lapu, virsū stāv firebird 2.1. Bet datubāze griežas uz servera, kur atrodas firebird 1.5. Līdz ar to radās nesaderība starp 2.1 firebird gds32.dll un firebird 1.5 gds32.dll. Fuhh, beidzot.

 

Paldies, katrā ziņā.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...