2010-01-26 3 views
1

Le scénario est similaire. L'utilisateur spécifiera un nom de table de base de données et le système récupérera et affichera toutes les données stockées dans la table de base de données informix spécifiée.Sélection de données de colonne BigSerial à partir d'Informix Tableau

Class.forName("com.informix.jdbc.IfxDriver"); 

Connection conn = DriverManager.getConnection(connUrl) 
Statement stmt = conn.createStatement(); 

ResultSet rs = stmt.executeQuery("select * from an_ifx_table"); 

La table an_ifx est un nom de table spécifié par l'utilisateur. Le problème est qu'il existe une colonne définie avec le type de données BigSerial. Ainsi, le code sera toujours lancer une exception:

java.sql.SQLException: bigserial 
    at com.informix.jdbc.IfxSqli.a(IfxSqli.java:3204) 
    at com.informix.jdbc.IfxSqli.E(IfxSqli.java:3518) 
    at com.informix.jdbc.IfxSqli.dispatchMsg(IfxSqli.java:2353) 
    at com.informix.jdbc.IfxSqli.receiveMessage(IfxSqli.java:2269) 
    at com.informix.jdbc.IfxSqli.executeStatementQuery(IfxSqli.java:1428) 
    at com.informix.jdbc.IfxSqli.executeStatementQuery(IfxSqli.java:1401) 
    at com.informix.jdbc.IfxResultSet.a(IfxResultSet.java:204) 

Comme quelle table le système récupère les données de va être spécifiée par l'utilisateur, nous ne pouvons pas ignorer ou jeter la colonne avec le type de données bigserial.

Une suggestion pour gérer ce scénario?

+1

Ajouter la version informations de votre système d'exploitation et pilote JDBC. –

Répondre

1

Je viens de créer une table avec la colonne SERIAL8, je l'ai remplie avec des données et je peux lire toutes les données de ResultSet.

Peut-être que votre pilote JDBC est ancien? J'utilise le pilote JDBC de JDBC.3.50.JC5.tar. Vous pouvez également essayer le pont JDBC-ODBC. Installer Informix ClientSDK, créez la source ODBC et que l'utilisation du pilote:

sun.jdbc.odbc.JdbcOdbcDriver 

et comme connUrl:

jdbc:odbc:[ODBC_source_name] 

Sur ma machine Windows J'utilise clientsdk.3.50.TC5.WIN.zip, et sur Linux J'utilise clientsdk.3.50.UC5.LINUX.tar

+0

Merci mon ami! Je viens de vérifier. Mon pilote Informix JDBC est obsolète. Juste téléchargé JDBC.3.50.JC5.tar et l'a testé. Tout fonctionne bien maintenant. – poh

Questions connexes