hello
i'm using DBD::ODBC v0.28 with Solid EE v3.51. for some reason the result
set field values get mixed up with earlier field values. for example:
select TABLE_NAME, COLUMN_NAME, DATA_TYPE from COLUMNS
where table_schema = 'TEST1' and table_name in ('USER_ROLES', 'USERS');
gives:
row: USERS, ID, INTEGER
row: USERS, USERNAME, VARCHAR
row: USERS, ACTIVEE, INTEGER
row: USERS, PERSON_ID, INTEGER
row: USERS, AUTHORIZED, INTEGER
row: USERS, SMS_FIELDNAME, VARCHAR
row: USER_ROLES, ROLE_IDDNAME, INTEGER
row: USER_ROLES, USER_IDDNAME, INTEGER
row: USER_ROLES, DOCUMENT_IDE, INTEGER
row: USER_ROLES, NODE_ID_IDE, INTEGER
if i reverse the order of table names in the wheres set the results
change:
row: USER_ROLES, ROLE_ID, INTEGER
row: USER_ROLES, USER_ID, INTEGER
row: USER_ROLES, DOCUMENT_ID, INTEGER
row: USER_ROLES, NODE_ID_ID, INTEGER
row: USERSOLES, IDE_ID, INTEGER
row: USERSOLES, USERNAMEID, VARCHAR
row: USERSOLES, ACTIVEEID, INTEGER
row: USERSOLES, PERSON_IDD, INTEGER
row: USERSOLES, AUTHORIZED, INTEGER
row: USERSOLES, SMS_FIELDNAME, VARCHAR
here's the script i'm using to fetch the results:
# ...
$dbh = DBI->connect($dbdsn, $user, $pass, $options);
$sth = $dbh->prepare("select TABLE_NAME, COLUMN_NAME, DATA_TYPE from COLUMNS where
table_schema = 'TEST1' and table_name in ('USERS', 'USER_ROLES')");
$sth->execute();
my ($sel_ary_ref, $i, @row_ary);
while ( $sel_ary_ref = $sth->fetchrow_arrayref() ) {
print "row: " . join(', ', @{$sel_ary_ref}) . "\n";
}
$sth->finish();
$dbh->disconnect();
this doesn't happen with DBD::Oracle. does someone know what's happening
here?
best regards,
--
aspa