51CTO技术论坛_中国领先的IT技术社区's Archiver

dailyit 发表于 2007-5-21 22:23

挺简单的一个程序啊.SQLJ编译出错的原因在哪里呢?请大牛帮忙

挺简单的一个程序啊.SQLJ编译出错的原因在哪里呢?请大牛帮忙


我用DB2 UDB 8.2 FOR WINDOWS + WSAD 5.1, 这是我的代码,为什么编译都过不去呢?

package u7.pro;

import java.sql.*;
import sqlj.runtime.*;
import sqlj.runtime.ref.*;
public class Sample1 {
        static {
                try{
                        Class.forName("COM.ibm.db2.jdbc.app.DB2Driver").newInstance();
                } catch(Exception e) {
                        System.out.println("\n Error loading DB2 driver ...\n");
                        System.exit(1);
                }
        }
       
        public static String getFName(int employId){
                String firstname = null;
                String userid = "db2admin";
                String passwd = "applena";
                try{
                        String url = "jdbc:db2:sample";
                        Connection con = null;
                        con = DriverManager.getConnection(url, userid, passwd);
                        DefaultContext ctx = new DefaultContext(con);
                        DefaultContext.setDefaultContext(ctx);
                        #sql{
                                SELECT FNAME INTO :firstname FROM EMPLOYEEDETAILS WHERE employeeId = :employeeId
                        };
                }catch (Exception e){
                        System.out.println(e);
                }
                return firstname;
        }
       
        public static void main(String args[]){
                System.out.println("First name is " + getFName(1));
        }       
}

错误信息是:
SQLJ 转换: Sample1.sqlj:26.3-28.3: Error: Java 类型对于主机项 #1 无效。 总计 1 个错误.

没长叶子的树 发表于 2007-5-22 08:52

不会!

没长叶子的树 发表于 2007-5-22 14:12

#sql{
                                SELECT FNAME INTO :firstname FROM EMPLOYEEDETAILS WHERE employeeId = :employeeId
                        };
把这个地方的#号去掉看看行不行!

dailyit 发表于 2007-5-22 14:43

还是不行



页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.