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 465 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. 20004 849 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. 20037 630 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 102 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. 20005 524 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(...)
123 ms totalt · 3 externa anrop · cache AV · v20260731051352-full.56cc9887
0 ms — hämta statistik (cache)
0 ms — hämta forumlista (cache)
121 ms — hämta tråd, inlägg och bilagor (db)