ok, this is a SQL program program that runs fine (on DB2). What does it
mean to have iterator declared outside the class declaration (from a Java
perspective, what are we doing here??)...I was under the impression that
import statements were the only statements that could come before the
class statement. Where is it documented that iterator type #sql statements
are to be declared outside the class definition.
import java.sql.*;
import sqlj.runtime.*;
import sqlj.runtime.ref.*;
#sql iterator Named_Iterator(String lastname);
class sqlj2
{
public static void main(String[] args) throws Exception
{
Named_Iterator namedItr = null;
String data = "jdbc:db2://localhost:50000/SAMPLE";
Class.forName("com.ibm.db2.jcc.DB2Driver");
Connection conn = DriverManager.getConnection(data,"user","passwd");
DefaultContext Ctx = new DefaultContext(conn);
DefaultContext.setDefaultContext(Ctx);
#sql namedItr = {SELECT LASTNAME FROM db2admin.EMPLOYEE WHERE WORKDEPT =
'A00'};
while (namedItr.next())
{
System.out.println("Lastname is: " + namedItr.lastname());
}
namedItr.close();
}
}
TIA
Raquel.
Raquel - 22 Jun 2004 12:26 GMT
Never mind..found answer to this. Apparently, during program preparation,
SQLJ generates an iterator 'class' whose name is this identifier. Hence,
an iteration declaration clause can appear anywhere in a java program that
a java class declaration can appear.
Thanks.
Raquel.