webForumDet fria alternativet

Övergång från MS SQL till Java

Databaser & SQLur Databashanterare & SQL

6 svar · 906 visningar · startad av SandraLund

Medlem sedan dec. 20096 inlägg
Frågan#1

Har problem med en joinad tabell i MS SQL, den fungerar inte när jag överför den till Java. Mkt tacksam för hjälp :)

import java.sql.*;
import sun.jdbc.odbc.JdbcOdbcDriver;
public class Employee{

public static void main(String []args) throws SQLException{
try{
DriverManager.registerDriver(new JdbcOdbcDriver());
}
catch (Exception e){
System.out.println("Kan inte hitta database driver class: " + e);
}
Connection con = DriverManager.getConnection("JDBC:ODBC:MyServer");
Statement stmt = con.createStatement();

String sqlStr = "SELECT e.\"First Name\", "+ "e.\"Last Name\", "+ "\"Relative Code\", "+ "r.\"First Name\", "+ " r.\"Last Name\" "+
"FROM \"CRONUS Sverige AB$Employee\" e, "+ " \"CRONUS Sverige AB$Employee Relative\" r "+
"WHERE e.No_ = r.\"Employee No_\"";

ResultSet rset = stmt.executeQuery(sqlStr); // returnerar resultset
while (rset.next ()) {
System.out.println (rset.getString (1) + " " +
rset.getString (2) + " " +
rset.getString (3) + " " +
rset.getString (4) + " " +
rset.getString (5) + " " +
rset.getString (6) + " " +
rset.getString (7) + " " +
rset.getString (8) + " " +
rset.getString (9) + " " +
rset.getString (10) + " " +
rset.getString (11) + " "+
rset.getString (12) + " ");
}
}

}

Medlem sedan dec. 200012 464 inlägg
#2

Vad får du för fel? Kan du skriva ut värdet av sqlStr?

Medlem sedan dec. 20096 inlägg
#3

Nej, det går inte att kompilera :(

Medlem sedan sep. 20005 700 inlägg
#4

SandraLund skrev:

Nej, det går inte att kompilera :(

Utan att analysera din kod så skulle det nog underlätta om du berättade vilket kompileringsfel du får. :)

Medlem sedan aug. 20039 342 inlägg
#5

Någon ställde närapå exakt samma fråga för en vecka sen. Lösningen då var att sammanfoga strängarna med en StringBuilder.

Se: http://www.webforum.nu/showthread.php?t=177466

Medlem sedan feb. 20011 198 inlägg
#6

Du har inte 13 fält utan 5.
getString är väl noll-baserat?

String sqlStr = "SELECT e.\"First Name\", e.\"Last Name\", \"Relative Code\",  r.\"First Name\", r.\"Last Name\" FROM \"CRONUS Sverige AB$Employee\" e, \"CRONUS Sverige AB$Employee Relative\" r WHERE e.No_ = r.\"Employee No_\"";
Medlem sedan apr. 20007 588 inlägg
#7

yohpops skrev:

Du har inte 13 fält utan 5.
getString är väl noll-baserat?

Nej, den startar på index 1. Försök att hämta felaktiga kolumnindex ger heller inte kompileringsfel.

Berätta som sagt vad det är för kompileringsfel du får, det underlättar ju enormt. Men du får antagligen problem med din laddning av JDBC-drivaren, använd Class.forName istället, det kommer att explicit ladda drivrutinen och kommer sen i sin tur att anropa registerDriver.

try {
   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch(...)
131 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
124 ms — hämta forumlista (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)