webForumDet fria alternativet

Övergång från MS SQL till Java

6 svar · 906 visningar · startad av SandraLund

SandraLundMedlem sedan dec. 20096 inlägg
#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) + " ");
}
}

}

LarsGMedlem sedan dec. 200012 464 inlägg
#2

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

SandraLundMedlem sedan dec. 20096 inlägg
#3

Nej, det går inte att kompilera :(

GeinMedlem 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. :)

nitro2k01Medlem 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

yohpopsMedlem 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_\"";
sgtpepperMedlem 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(...)
129 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)