Thanks! I've just successfully rebuilt my Windows Machine (from NT4 -> 2000 replacing the crashed hd and non-functional cdrom), so hopefully I can apply this patch and fix the bug with undef/null values in parameters in the next week or so.
Thomas On Mon, Aug 18, 2003 at 12:18:27PM +0200, Steffen Goeldner wrote: > Hi Thomas, > > attached is a small patch to provide correct types > in metadata result sets. > > > Steffen > *** ADO.orig Sat Nov 09 21:08:44 2002 > --- ADO.pm Sun Aug 17 22:45:38 2003 > *************** > *** 1141,1148 **** > $conn->{CursorLocation} = $tmpCursorLocation; > > DBI->connect('dbi:Sponge:','','', { RaiseError => 1 })->prepare( > ! $QueryType, { rows => [EMAIL PROTECTED], NAME => > ! [ qw( TABLE_CAT TABLE_SCHEM TABLE_NAME COLUMN_NAME DATA_TYPE > TYPE_NAME COLUMN_SIZE BUFFER_LENGTH DECIMAL_DIGITS NUM_PREC_RADIX NULLABLE REMARKS > COLUMN_DEF SQL_DATA_TYPE SQL_DATETIME_SUB CHAR_OCTET_LENGTH ORDINAL_POSITION > IS_NULLABLE ) ]}); > } > > sub primary_key_info { > --- 1141,1150 ---- > $conn->{CursorLocation} = $tmpCursorLocation; > > DBI->connect('dbi:Sponge:','','', { RaiseError => 1 })->prepare( > ! $QueryType, { rows => [EMAIL PROTECTED] > ! , NAME => [ qw( TABLE_CAT TABLE_SCHEM TABLE_NAME COLUMN_NAME > DATA_TYPE TYPE_NAME COLUMN_SIZE BUFFER_LENGTH DECIMAL_DIGITS NUM_PREC_RADIX NULLABLE > REMARKS COLUMN_DEF SQL_DATA_TYPE SQL_DATETIME_SUB CHAR_OCTET_LENGTH ORDINAL_POSITION > IS_NULLABLE ) ] > ! , TYPE => [ 12, 12, 12, 12, > 5, 12, 4, 4, 5, 5, 5, > 12, 12, 5, 5, 4, 4, > 12 ] > ! }); > } > > sub primary_key_info { > *************** > *** 1177,1184 **** > $conn->{CursorLocation} = $tmpCursorLocation; > > DBI->connect('dbi:Sponge:','','', { RaiseError => 1 > })->prepare( > ! $QueryType, { rows => [EMAIL PROTECTED], NAME => > ! [ qw( TABLE_CAT TABLE_SCHEM TABLE_NAME COLUMN_NAME KEY_SEQ > PK_NAME ) ]}); > } > > > --- 1179,1188 ---- > $conn->{CursorLocation} = $tmpCursorLocation; > > DBI->connect('dbi:Sponge:','','', { RaiseError => 1 > })->prepare( > ! $QueryType, { rows => [EMAIL PROTECTED] > ! , NAME => [ qw( TABLE_CAT TABLE_SCHEM TABLE_NAME > COLUMN_NAME KEY_SEQ PK_NAME ) ] > ! , TYPE => [ 12, 12, 12, > 12, 5, 12 ] > ! }); > } > > > *************** > *** 1223,1230 **** > $conn->{CursorLocation} = $tmpCursorLocation; > > DBI->connect('dbi:Sponge:','','', { RaiseError => 1 })->prepare( > ! $QueryType, { rows => [EMAIL PROTECTED], NAME => > ! [ qw( PKTABLE_CAT PKTABLE_SCHEM PKTABLE_NAME PKCOLUMN_NAME > FKTABLE_CAT FKTABLE_SCHEM FKTABLE_NAME FKCOLUMN_NAME KEY_SEQ UPDATE_RULE DELETE_RULE > FK_NAME PK_NAME DEFERRABILITY ) ]}); > } > > sub type_info_all { > --- 1227,1236 ---- > $conn->{CursorLocation} = $tmpCursorLocation; > > DBI->connect('dbi:Sponge:','','', { RaiseError => 1 })->prepare( > ! $QueryType, { rows => [EMAIL PROTECTED] > ! , NAME => [ qw( PKTABLE_CAT PKTABLE_SCHEM PKTABLE_NAME > PKCOLUMN_NAME FKTABLE_CAT FKTABLE_SCHEM FKTABLE_NAME FKCOLUMN_NAME KEY_SEQ > UPDATE_RULE DELETE_RULE FK_NAME PK_NAME DEFERRABILITY ) ] > ! , TYPE => [ 12, 12, 12, > 12, 12, 12, 12, 12, 5, 5, > 5, 12, 12, 5 ] > ! }); > } > > sub type_info_all {