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

Reply via email to