[PHP-DEV] Patch to interbase module.

2001-09-04 Thread Jeremy Bettis

Please apply this patch to the CVS archive, or give me a CVS account.  This
fixes a critical bug in interbase.

Summary of changes:
* The CVS version doesn't compile right now because of ibase_globals
weirdness. I fixed that.
* If a bind parameter (i.e. ? in a query) is NULL then pass a NULL to the
database instead of an empty string.
* If a date is not parsable, give a helpful error.
* If a string is passed as a bind parameter to a blob field, and the string
is not a blob handle, then create a new blob, write the string to it, and
give the database that blob handle.
* The MS Visual Studio .dsp file doesn't support building the Debug_TS
config.  I fixed it.
* IBG(v) was defined twice in php_interbase.h and I removed one.



If this patch is not applied, tell me why. I'm just going to keep posting it
until someone adds it.  This is really important stuff to anyone that is
going to use interbase in any serious way.
--
Jeremy Bettis
[EMAIL PROTECTED]


begin 666 php.diff
M26YD97@Z(5X=]I;G1EF)AV4O:6YT97)B87-E+F,-/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
M/3T]/3T]/3T]/0U20U,@9FEL93H@+W)E]S:71OGDOAP-]E'0O:6YT
M97)B87-E+VEN=5R8F%S92YC+'8-F5TFEE=FEN9R!R979IVEO;B Q+C8X
M#61I9F8@+74@+7(Q+C8X(EN=5R8F%S92YC#2TM+2!E'0O:6YT97)B87-E
M+VEN=5R8F%S92YC3$S($%U9R R,# Q(# W.C4U.C,S(TP,# P3$N-C@-
M*RLK(5X=]I;G1EF)AV4O:6YT97)B87-E+F,),S$@075G(#(P,#$@,3Z
M-#0Z-3$@+3 P,# -0$ @+3(U+#8@*S(U+#$R($! #2 -(\J#2 )0VAA;F=E
MSH-*PD),C P,2TP-2TS,3H@2F5R96UY($)E='1IR \:F5R96UY01E861B
M965F+F-O;3X-*PD)2T@268@82!B;]B(AA;F1L92!W87,@97AP96-T960@
M86YD('-O;65T:EN9R!E;'-E('=APTK0D)(!R96-E:79E9!CF5A=4@
M82!B;]B(%N9!A90@=AE('9A;'5E('1O(ET+@TK0D)+2!)9B!T:4@
M:6YC;VUI;F@87)G=6UE;G0@=\@82!B:6YD('!AF%M971EB!IR!.54Q,
M#2L)0D@('1H96X@W1OF4@82!.54Q,(EN('1H92!D871A8F%S92X-*PD)
M2T@36]R92!V97)B;W-E(1A=4@97)R;W)S+@T@0DQ.3DY+3 Y+3(Q.@E)
M=F\@4%N86-E:R \:79O$!R96=I;VYE=YCCX-( D)2T@861D960@0T]-
M4$E,15]$3!S96-T:6]N#2 )0DM(UOF4@=F5R8F]S92!P:'!?:6YF;U]I
M8F%S92!F=6YC=EO;@U 0 M-#@T+#$S(LT.3 L,3,@0$ -( D@4U1$7U!(
M4%])3DE?14Y44EDH(FEB87-E+G1I;65F;W)M870B+ B)4@Z)4TZ)5,B+!0
M2%!?24Y)7T%,3P@3VY51A=53=')I;FL(-F9U]T:6UE9F]R;6%T+!Z
M96YD7VEB87-E7V=L;V)A;',L(EB87-E7V=L;V)A;',I#2!02%!?24Y)7T5.
M1@I#2 -+7-T871I8R!V;VED('!H%]I8F%S95]I;FET7V=L;V)A;',H5%-2
M34Q37T0I#2MS=%T:6,@=F]I9!P:'!?:6)AV5?:6YI=%]G;]B86QS*'IE
M;F1?:6)AV5?9VQO8F%LR J:6)AV5?9VQO8F%LRD-('L-+0E)0DH=EM
M97-T86UP9F]R;6%T*2 ]($Y53$P[#2T)24)'*1A=5F;W)M870I(#T@3E5,
M3#L-+0E)0DH=EM969OFUA=D@/2!.54Q,.PTM4E1RAEG)MVI(#T@
M3E5,3#L-+0E)0DH;G5M7W!EG-IW1E;G0I(#T@,#L-*PEI8F%S95]G;]B
M86QS+3YT:6UEW1A;7!F;W)M870@/2!.54Q,.PTK6EB87-E7V=L;V)A;',M
M/F1A=5F;W)M870@/2!.54Q,.PTK6EB87-E7V=L;V)A;',M/G1I;65F;W)M
M870@/2!.54Q,.PTK6EB87-E7V=L;V)A;',M/F5RFUS9R ]($Y53$P[#2L)
M:6)AV5?9VQO8F%LRT^;G5M7W!EG-IW1E;G0@/2 P.PT@?0T@#2!02%!?
M34E.251?1E5.0U1)3TXH:6)AV4I#4! (TQ,3$X+#@*S$Q,C0L-R! 0 T@
M#2 O*B![WL@7W!H%]I8F%S95]B:6YD*D-( @($)I;F0@%R86UE=5R
M('!L86-E:]L95RR!I;B!A('!R979I;W5S;'D@')E%R960@75EGD@
M*B\-+7-T871I8R!I;G0@7W!H%]I8F%S95]B:6YD*%A344Q$02 JW%L9$L
M('!V86P@*BIB7W9AG,L($))3D1?0E5(IB=68I#2MS=%T:6,@:6YT(%]P
M:'!?:6)AV5?8FEN9A84U%,1$$@*G-Q;1A+!P=F%L(HJ8E]V87)S+!
M24Y$7T)51B J8G5F+!I8F%S95]Q=65R2 J:6)?75EGDI#2![#2 )6%-1
M3%9!4B J=F%R.PT@7!V86P@*F)?=F%R.PU 0 M,3$S,2PV(LQ,3,W+#$U
M($! #2 )79ABT^W%L:6YD2 ](9B=69;:5TNW%L:6YD.PT@0EB7W9A
MB ]()?=F%RUMI73L-( D)#2L)6EF(AB7W9ABT^='EP92 ]/2!)4U].
M54Q,*2![#2L)0ES=%T:6,@8VAAB!N;W1H:6YG6S8T73L-*PD)7-T871I
M8R!S:]R=!N=6QL7V9L86@/2 M,3L-*PD)79ABT^W%L9%T82 ](YO
M=AI;F[#2L)0EV87(M/G-Q;'1Y4@?#T@,3L-*PD)79ABT^W%L:6YD
M(#T@)FYU;Q?9FQA9SL-*PD)6EF(AV87(M/G-Q;QE;B ^(#8T*0TK0D)
M79ABT^W%L;5N(#T@-C0[#2L)7T@96QS90T@0ES=VET8V@H=F%R+3YS
M6QT7!E(8@?C$I('L-( D)6-AV4@4U%,7U1%6%0Z0D)( @+RH@9ER
M96-T('1O('9AFEA8FQE(HO#2 )0EC87-E(%-13%]605)924Y'.@U 0 M
M,3(P.PW(LQ,C(S+#@0$ -( D)0D);B ]('-S8V%N9BAB7W9ABT^=F%L
M=64NW1R+G9A;P@(B5D)2I;+UTE94J6R]=)60@)60E*ELZ725D)2I;.ETE
M9(L#2 )0D)0D@( F=YT;5]M;VXL(9T+G1M7VUD87DL(9T+G1M7WEE
M87(L( F=YT;5]H;W5R+ F=YT;5]M:6XL(9T+G1M7W-E8RD[#2 )0D)
M6EF*X@(3T@,R F)B!N($](#8IPTM0D)0D)7W!H%]I8F%S95]M;V1U
M;5?97)R;W(H(FEN=F%L:60@9%T92]T:6UE(9OFUA=(I.PTK0D)0D)
M7W!H%]I8F%S95]M;V1U;5?97)R;W(H(FEN=F%L:60@9%T92]T:6UE(9O
MFUA=#H@17AP96-T960@,R!OB V(9I96QDRP@9V]T(5D+B!5V4@9F]R
M;6%T(TO9]9($@Z:3IS+B!9;W4@9V%V92 G)7,G(BP@;BP@8E]V87(M/G9A
M;'5E+G-TBYV86PI.PT@0D)0D)F5T=7)N($9!24Q54D4[#2 )0D)7T-
M( D)0D)=YT;5]Y96%R(T](#$Y,# [#4! (TQ,C8V+#$R(LQ,C@Q+#,X
M($! #2 )0D)6EF(AB7W9ABT^='EP92 A/2!)4U]35%))3D-( D)0D)
M7Q\()?=F%R+3YV86QU92YS='(N;5N($]('-IF5O9BAI8F%S95]B;]B
M7VAA;F1L92D-( D)0D)7Q\(@H:6)AV5?8FQO8E]H86YD;4@*BDH8E]V
M87(M/G9A;'5E+G-TBYV86PI*2T^8FQ?:%N9QE($](# I('L-*PD)0D)
M6EB87-E7V)L;V)?:%N9QE(II8E]B;]B.PTK0D)0D)5%-234Q37T9%
M5$-(*D[#2L-*PD)0D)6EB7V)L;V(@/2 H:6)AV5?8FQO8E]H86YD;4@
M*BD@96UA;QO8RAS:7IE;V8H:6)AV5?8FQO8E]H86YD;4I*3L-*PD)0D)
M6EB7V)L;V(M/G1R86YS7VAA;F1L92 ](EB7W%U97)Y+3YTF%NSL-*PD)
M0D)6EB7V)L;V(M/FQI;FL@/2!I8E]Q=65R2T^;EN:SL-*PD)0D)6EB
M7V)L;V(M/F)L7VAA;F1L92 ]($Y53$P[#2L)0D)0EI9B H:7-C7V-R96%T
M95]B;]B*$E7U-405154RP@)FEB7V)L;V(M/FQI;FLL(9I8E]B;]B+3YT

Re: [PHP-DEV] Patch to interbase module.

2001-09-04 Thread Sterling Hughes

On Tue, 4 Sep 2001, Jeremy Bettis wrote:

 Please apply this patch to the CVS archive, or give me a CVS account.  This
 fixes a critical bug in interbase.

 Summary of changes:
 * The CVS version doesn't compile right now because of ibase_globals
 weirdness. I fixed that.
 * If a bind parameter (i.e. ? in a query) is NULL then pass a NULL to the
 database instead of an empty string.
 * If a date is not parsable, give a helpful error.
 * If a string is passed as a bind parameter to a blob field, and the string
 is not a blob handle, then create a new blob, write the string to it, and
 give the database that blob handle.
 * The MS Visual Studio .dsp file doesn't support building the Debug_TS
 config.  I fixed it.
 * IBG(v) was defined twice in php_interbase.h and I removed one.



 If this patch is not applied, tell me why. I'm just going to keep posting it
 until someone adds it.  This is really important stuff to anyone that is
 going to use interbase in any serious way.
 --
 Jeremy Bettis
 [EMAIL PROTECTED]


Well for starters I get the below garbled stuff instead of the patch :)))

can you try resending it (lemme guess, you use ms outlook :)
It seems pine cannot handle ms outlook attachments (I've had
this problem before).  Perhaps you could use another mail client?

Thanks,
Sterling

 begin 666 php.diff
 M26YD97@Z(5X=]I;G1EF)AV4O:6YT97)B87-E+F,-/3T]/3T]/3T]/3T]
 M/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]/3T]
 M/3T]/3T]/3T]/0U20U,@9FEL93H@+W)E]S:71OGDOAP-]E'0O:6YT
 M97)B87-E+VEN=5R8F%S92YC+'8-F5TFEE=FEN9R!R979IVEO;B Q+C8X
 M#61I9F8@+74@+7(Q+C8X(EN=5R8F%S92YC#2TM+2!E'0O:6YT97)B87-E
 M+VEN=5R8F%S92YC3$S($%U9R R,# Q(# W.C4U.C,S(TP,# P3$N-C@-
 M*RLK(5X=]I;G1EF)AV4O:6YT97)B87-E+F,),S$@075G(#(P,#$@,3Z
 M-#0Z-3$@+3 P,# -0$ @+3(U+#8@*S(U+#$R($! #2 -(\J#2 )0VAA;F=E
 MSH-*PD),C P,2TP-2TS,3H@2F5R96UY($)E='1IR \:F5R96UY01E861B
 M965F+F-O;3X-*PD)2T@268@82!B;]B(AA;F1L92!W87,@97AP96-T960@
 M86YD('-O;65T:EN9R!E;'-E('=APTK0D)(!R96-E:79E9!CF5A=4@
 M82!B;]B(%N9!A90@=AE('9A;'5E('1O(ET+@TK0D)+2!)9B!T:4@
 M:6YC;VUI;F@87)G=6UE;G0@=\@82!B:6YD('!AF%M971EB!IR!.54Q,
 M#2L)0D@('1H96X@W1OF4@82!.54Q,(EN('1H92!D871A8F%S92X-*PD)
 M2T@36]R92!V97)B;W-E(1A=4@97)R;W)S+@T@0DQ.3DY+3 Y+3(Q.@E)
 M=F\@4%N86-E:R \:79O$!R96=I;VYE=YCCX-( D)2T@861D960@0T]-
 M4$E,15]$3!S96-T:6]N#2 )0DM(UOF4@=F5R8F]S92!P:'!?:6YF;U]I
 M8F%S92!F=6YC=EO;@U 0 M-#@T+#$S(LT.3 L,3,@0$ -( D@4U1$7U!(
 M4%])3DE?14Y44EDH(FEB87-E+G1I;65F;W)M870B+ B)4@Z)4TZ)5,B+!0
 M2%!?24Y)7T%,3P@3VY51A=53=')I;FL(-F9U]T:6UE9F]R;6%T+!Z
 M96YD7VEB87-E7V=L;V)A;',L(EB87-E7V=L;V)A;',I#2!02%!?24Y)7T5.
 M1@I#2 -+7-T871I8R!V;VED('!H%]I8F%S95]I;FET7V=L;V)A;',H5%-2
 M34Q37T0I#2MS=%T:6,@=F]I9!P:'!?:6)AV5?:6YI=%]G;]B86QS*'IE
 M;F1?:6)AV5?9VQO8F%LR J:6)AV5?9VQO8F%LRD-('L-+0E)0DH=EM
 M97-T86UP9F]R;6%T*2 ]($Y53$P[#2T)24)'*1A=5F;W)M870I(#T@3E5,
 M3#L-+0E)0DH=EM969OFUA=D@/2!.54Q,.PTM4E1RAEG)MVI(#T@
 M3E5,3#L-+0E)0DH;G5M7W!EG-IW1E;G0I(#T@,#L-*PEI8F%S95]G;]B
 M86QS+3YT:6UEW1A;7!F;W)M870@/2!.54Q,.PTK6EB87-E7V=L;V)A;',M
 M/F1A=5F;W)M870@/2!.54Q,.PTK6EB87-E7V=L;V)A;',M/G1I;65F;W)M
 M870@/2!.54Q,.PTK6EB87-E7V=L;V)A;',M/F5RFUS9R ]($Y53$P[#2L)
 M:6)AV5?9VQO8F%LRT^;G5M7W!EG-IW1E;G0@/2 P.PT@?0T@#2!02%!?
 M34E.251?1E5.0U1)3TXH:6)AV4I#4! (TQ,3$X+#@*S$Q,C0L-R! 0 T@
 M#2 O*B![WL@7W!H%]I8F%S95]B:6YD*D-( @($)I;F0@%R86UE=5R
 M('!L86-E:]L95RR!I;B!A('!R979I;W5S;'D@')E%R960@75EGD@
 M*B\-+7-T871I8R!I;G0@7W!H%]I8F%S95]B:6YD*%A344Q$02 JW%L9$L
 M('!V86P@*BIB7W9AG,L($))3D1?0E5(IB=68I#2MS=%T:6,@:6YT(%]P
 M:'!?:6)AV5?8FEN9A84U%,1$$@*G-Q;1A+!P=F%L(HJ8E]V87)S+!
 M24Y$7T)51B J8G5F+!I8F%S95]Q=65R2 J:6)?75EGDI#2![#2 )6%-1
 M3%9!4B J=F%R.PT@7!V86P@*F)?=F%R.PU 0 M,3$S,2PV(LQ,3,W+#$U
 M($! #2 )79ABT^W%L:6YD2 ](9B=69;:5TNW%L:6YD.PT@0EB7W9A
 MB ]()?=F%RUMI73L-( D)#2L)6EF(AB7W9ABT^='EP92 ]/2!)4U].
 M54Q,*2![#2L)0ES=%T:6,@8VAAB!N;W1H:6YG6S8T73L-*PD)7-T871I
 M8R!S:]R=!N=6QL7V9L86@/2 M,3L-*PD)79ABT^W%L9%T82 ](YO
 M=AI;F[#2L)0EV87(M/G-Q;'1Y4@?#T@,3L-*PD)79ABT^W%L:6YD
 M(#T@)FYU;Q?9FQA9SL-*PD)6EF(AV87(M/G-Q;QE;B ^(#8T*0TK0D)
 M79ABT^W%L;5N(#T@-C0[#2L)7T@96QS90T@0ES=VET8V@H=F%R+3YS
 M6QT7!E(8@?C$I('L-( D)6-AV4@4U%,7U1%6%0Z0D)( @+RH@9ER
 M96-T('1O('9AFEA8FQE(HO#2 )0EC87-E(%-13%]605)924Y'.@U 0 M
 M,3(P.PW(LQ,C(S+#@0$ -( D)0D);B ]('-S8V%N9BAB7W9ABT^=F%L
 M=64NW1R+G9A;P@(B5D)2I;+UTE94J6R]=)60@)60E*ELZ725D)2I;.ETE
 M9(L#2 )0D)0D@( F=YT;5]M;VXL(9T+G1M7VUD87DL(9T+G1M7WEE
 M87(L( F=YT;5]H;W5R+ F=YT;5]M:6XL(9T+G1M7W-E8RD[#2 )0D)
 M6EF*X@(3T@,R F)B!N($](#8IPTM0D)0D)7W!H%]I8F%S95]M;V1U
 M;5?97)R;W(H(FEN=F%L:60@9%T92]T:6UE(9OFUA=(I.PTK0D)0D)
 M7W!H%]I8F%S95]M;V1U;5?97)R;W(H(FEN=F%L:60@9%T92]T:6UE(9O
 MFUA=#H@17AP96-T960@,R!OB V(9I96QDRP@9V]T(5D+B!5V4@9F]R
 M;6%T(TO9]9($@Z:3IS+B!9;W4@9V%V92 G)7,G(BP@;BP@8E]V87(M/G9A
 M;'5E+G-TBYV86PI.PT@0D)0D)F5T=7)N($9!24Q54D4[#2 )0D)7T-
 M( D)0D)=YT;5]Y96%R(T](#$Y,# [#4! (TQ,C8V+#$R(LQ,C@Q+#,X
 M($! #2 )0D)6EF(AB7W9ABT^='EP92 A/2!)4U]35%))3D-( D)0D)
 M7Q\()?=F%R+3YV86QU92YS='(N;5N($]('-IF5O9BAI8F%S95]B;]B
 M7VAA;F1L92D-( D)0D)7Q\(@H:6)AV5?8FQO8E]H86YD;4@*BDH8E]V
 

Re: [PHP-DEV] Patch to interbase module.

2001-09-04 Thread Rasmus Lerdorf

 If this patch is not applied, tell me why. I'm just going to keep posting it
 until someone adds it.  This is really important stuff to anyone that is
 going to use interbase in any serious way.

Well, first you need to fix your diff.  uudecoding that thing results in:

--- ext/interbase/interbase.ct/i13 Aug 2001 07:55e.c,v=
+/*-25,6Changes:2001-05-  received create a blob and add td something else
was
  value to it.  1999-09-- more verbose php_info_ibaegionet.czarameter is
NULL
 @ -484, STD_PHP_INI_ENTRY(ibase.timeformat, %H:%M:%S, PHP_INI_ALL,
OnUpdateString, cfg_timeformat, ze-{tatic IBG(timeformat) =
NULL;NULL;zend_ibase_globals *ibase_globals)
 PHP_MINIT_FUNCTION(ibnum_persistent = 0;ULL;
+static int _php_ibase_bind(XSQLDA *sqlda, pval **b_vars, BIND_BUF *buf)
...

ie. complete gibberish.

-Rasmus


-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




Re: [PHP-DEV] Patch to interbase module.

2001-09-04 Thread Jeremy Bettis

Ok, I'll try it again.  The first post was just what cvs diff gave me.  Here
is one with the line endings converted.

I'll attach it and copy-paste it.

Index: ext/interbase/interbase.c
===
RCS file: /repository/php4/ext/interbase/interbase.c,v
retrieving revision 1.68
diff -u -r1.68 interbase.c
--- ext/interbase/interbase.c 13 Aug 2001 07:55:33 - 1.68
+++ ext/interbase/interbase.c 31 Aug 2001 17:44:51 -
@@ -25,6 +25,12 @@

 /*
  Changes:
+  2001-05-31: Jeremy Bettis [EMAIL PROTECTED]
+   - If a blob handle was expected and something else was
+ received create a blob and add the value to it.
+   - If the incoming argument to a bind parameter is NULL
+ then store a NULL in the database.
+   - More verbose date errors.
   1999-09-21: Ivo Panacek [EMAIL PROTECTED]
- added COMPILE_DL section
- more verbose php_info_ibase function
@@ -484,13 +490,13 @@
   STD_PHP_INI_ENTRY(ibase.timeformat, %H:%M:%S, PHP_INI_ALL,
OnUpdateString, cfg_timeformat, zend_ibase_globals, ibase_globals)
 PHP_INI_END()

-static void php_ibase_init_globals(TSRMLS_D)
+static void php_ibase_init_globals(zend_ibase_globals *ibase_globals)
 {
- IBG(timestampformat) = NULL;
- IBG(dateformat) = NULL;
- IBG(timeformat) = NULL;
- IBG(errmsg) = NULL;
- IBG(num_persistent) = 0;
+ ibase_globals-timestampformat = NULL;
+ ibase_globals-dateformat = NULL;
+ ibase_globals-timeformat = NULL;
+ ibase_globals-errmsg = NULL;
+ ibase_globals-num_persistent = 0;
 }

 PHP_MINIT_FUNCTION(ibase)
@@ -1118,7 +1124,7 @@

 /* {{{ _php_ibase_bind()
Bind parameter placeholders in a previously prepared query */
-static int _php_ibase_bind(XSQLDA *sqlda, pval **b_vars, BIND_BUF *buf)
+static int _php_ibase_bind(XSQLDA *sqlda, pval **b_vars, BIND_BUF *buf,
ibase_query *ib_query)
 {
  XSQLVAR *var;
  pval *b_var;
@@ -1131,6 +1137,15 @@
   var-sqlind  = buf[i].sqlind;
   b_var = b_vars[i];

+  if (b_var-type == IS_NULL) {
+   static char nothing[64];
+   static short null_flag = -1;
+   var-sqldata = nothing;
+   var-sqltype |= 1;
+   var-sqlind = null_flag;
+   if (var-sqllen  64)
+var-sqllen = 64;
+  } else
   switch(var-sqltype  ~1) {
case SQL_TEXT:  /* direct to variable */
case SQL_VARYING:
@@ -1208,7 +1223,7 @@
  n = sscanf(b_var-value.str.val, %d%*[/]%d%*[/]%d %d%*[:]%d%*[:]%d,
  t.tm_mon, t.tm_mday, t.tm_year,  t.tm_hour, t.tm_min,
t.tm_sec);
  if(n != 3  n != 6){
-  _php_ibase_module_error(invalid date/time format);
+  _php_ibase_module_error(invalid date/time format: Expected 3 or 6
fields, got %d. Use format m/d/Y H:i:s. You gave '%s', n,
b_var-value.str.val);
   return FAILURE;
  }
  t.tm_year -= 1900;
@@ -1266,12 +1281,38 @@
  if (b_var-type != IS_STRING
   || b_var-value.str.len != sizeof(ibase_blob_handle)
   || ((ibase_blob_handle *)(b_var-value.str.val))-bl_handle != 0) {
+  ibase_blob_handle *ib_blob;
+  TSRMLS_FETCH();
+
+  ib_blob = (ibase_blob_handle *) emalloc(sizeof(ibase_blob_handle));
+  ib_blob-trans_handle = ib_query-trans;
+  ib_blob-link = ib_query-link;
+  ib_blob-bl_handle = NULL;
+  if (isc_create_blob(IB_STATUS, ib_blob-link,
ib_blob-trans_handle, ib_blob-bl_handle, ib_blob-bl_qd)) {
+   efree(ib_blob);
+   _php_ibase_error();
+   return FAILURE;
+  }
+  convert_to_string(b_var);
+  if (isc_put_segment(IB_STATUS, ib_blob-bl_handle, (unsigned short)
b_var-value.str.len, b_var-value.str.val)) {
+   _php_ibase_error();
+   return FAILURE;
+  }
+  if (isc_close_blob(IB_STATUS, ib_blob-bl_handle)) {
+   _php_ibase_error();
+   return FAILURE;
+  }
+  ib_blob_id = ib_blob;
+  var-sqldata = (void ISC_FAR *)ib_blob_id-bl_qd;
+/*
   _php_ibase_module_error(invalid blob id string);
   return FAILURE;
- }
- ib_blob_id = (ibase_blob_handle *)b_var-value.str.val;
+*/
+ } else {
+  ib_blob_id = (ibase_blob_handle *)b_var-value.str.val;

- var-sqldata = (void ISC_FAR *)ib_blob_id-bl_qd;
+  var-sqldata = (void ISC_FAR *)ib_blob_id-bl_qd;
+ }
 }
break;
case SQL_ARRAY:
@@ -1383,7 +1424,7 @@
   in_sqlda = emalloc(XSQLDA_LENGTH(ib_query-in_sqlda-sqld));
   memcpy(in_sqlda, ib_query-in_sqlda,
XSQLDA_LENGTH(ib_query-in_sqlda-sqld));
   bind_buf = emalloc(sizeof(BIND_BUF) * ib_query-in_sqlda-sqld);
-  if (_php_ibase_bind(in_sqlda, args, bind_buf) == FAILURE) {
+  if (_php_ibase_bind(in_sqlda, args, bind_buf, ib_query) == FAILURE) {
IBDEBUG(Could not bind input XSQLDA... (_php_ibase_exec));
goto _php_ibase_exec_error;
   }
Index: ext/interbase/interbase.dsp
===
RCS file: /repository/php4/ext/interbase/interbase.dsp,v
retrieving revision 1.5
diff -u -r1.5 interbase.dsp
--- ext/interbase/interbase.dsp 24 Aug 2000 18:58:50 - 1.5
+++ ext/interbase/interbase.dsp 31 Aug 2001 17:44:51 -
@@ -44,7 +44,7 

Re: [PHP-DEV] Patch to interbase module.

2001-09-04 Thread Rasmus Lerdorf

Jeremy, could you please test the current CVS?  Specifically the
interbase.dsp change.

-Rasmus


-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]