/*@lineinfo:filename=ShowSqljHost*//*@lineinfo:user-code*//*@lineinfo:1^1*/import java.io.*;
import java.sql.*;
import sqlj.runtime.*;
import sqlj.runtime.ref.*;

public class ShowSqljHost {

  public static void main(String args[]) {

    String url ="jdbc:microsoft:sqlserver://maestro:1433";  // URL der Datenbank
    String user   = "erika";                                // User-Login
    String passwd = "mustermann";                           // User-Passwort
    Connection con;                                         // Verbindungs-Objekt

    try {                                                   // versuche
      Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
    }catch(java.lang.ClassNotFoundException e) {            // Treiber zu laden
      System.err.println(e.getMessage());                   // Fehlermeldung 
    }

    try {  

      con = DriverManager.getConnection(url,user,passwd);   // Verbindung
      int vorgabe=IO.readInt("Bitte Personalnummer: ");     // Benutzereingabe
      String name, rang;
      DefaultContext ctx = new DefaultContext(con);
      DefaultContext.setDefaultContext(ctx);
      /*@lineinfo:generated-code*//*@lineinfo:28^7*/

//  ************************************************************
//  #sql { select name, rang 
//               from Professoren 
//               where persnr = :vorgabe };
//  ************************************************************

{
  sqlj.runtime.profile.RTResultSet __sJT_rtRs;
  sqlj.runtime.ConnectionContext __sJT_connCtx = sqlj.runtime.ref.DefaultContext.getDefaultContext();
  if (__sJT_connCtx == null) sqlj.runtime.error.RuntimeRefErrors.raise_NULL_CONN_CTX();
  sqlj.runtime.ExecutionContext __sJT_execCtx = __sJT_connCtx.getExecutionContext();
  if (__sJT_execCtx == null) sqlj.runtime.error.RuntimeRefErrors.raise_NULL_EXEC_CTX();
  int __sJT_1 = vorgabe;
  synchronized (__sJT_execCtx) {
    sqlj.runtime.profile.RTStatement __sJT_stmt = __sJT_execCtx.registerStatement(__sJT_connCtx, ShowSqljHost_SJProfileKeys.getKey(0), 0);
    try 
    {
      __sJT_stmt.setInt(1, __sJT_1);
      sqlj.runtime.profile.RTResultSet __sJT_result = __sJT_execCtx.executeQuery();
      __sJT_rtRs = __sJT_result;
    }
    finally 
    {
      __sJT_execCtx.releaseStatement();
    }
  }
  try 
  {
    sqlj.runtime.ref.ResultSetIterImpl.checkColumns(__sJT_rtRs, 2);
    if (!__sJT_rtRs.next())
    {
      sqlj.runtime.error.RuntimeRefErrors.raise_NO_ROW_SELECT_INTO();
    }
    name = __sJT_rtRs.getString(1);
    rang = __sJT_rtRs.getString(2);
    if (__sJT_rtRs.next())
    {
      sqlj.runtime.error.RuntimeRefErrors.raise_MULTI_ROW_SELECT_INTO();
    }
  }
  finally 
  {
    __sJT_rtRs.close();
  }
}


//  ************************************************************

/*@lineinfo:user-code*//*@lineinfo:30^37*/
      
      System.out.print("Die Personalnummer gehoert zu ");
      System.out.println(name + " mit Rang " + rang);

    }catch(SQLException ex) {
      System.err.println("SQLException: " + ex.getMessage());
    }
  }
}/*@lineinfo:generated-code*/class ShowSqljHost_SJProfileKeys 
{
  private static ShowSqljHost_SJProfileKeys inst = null;
  public static java.lang.Object getKey(int keyNum) 
    throws java.sql.SQLException 
  {
    if (inst == null)
    {
      inst = new ShowSqljHost_SJProfileKeys();
    }
    return inst.keys[keyNum];
  }
  private final sqlj.runtime.profile.Loader loader = sqlj.runtime.RuntimeContext.getRuntime().getLoaderForClass(getClass());
  private java.lang.Object[] keys;
  private ShowSqljHost_SJProfileKeys() 
    throws java.sql.SQLException 
  {
    keys = new java.lang.Object[1];
    keys[0] = sqlj.runtime.ref.DefaultContext.getProfileKey(loader, "ShowSqljHost_SJProfile0");
  }
}