# wer kennt Sage - KHK ? ODBC funzt nicht ?



## rwolf (18. Apr 2005)

also das ist schon nervig :

Aufgabe : aus der ODBC-Schnittstelle von SAGE KHK Classic Line Demo V3.3
will ich Daten lesen, z.B. von Tabelle 'Buchungskreise'

bei der Zeile ..createStatement schmeißt JAVA exception 'resultset not supported'  ???:L 
mit anderen ODBC-Quellen (nicht SAGE..) funzt das ok !

hier der code :





```
import java.sql.*;

class db_mysql_test1 
{
	public static void main(String[] args)
	{

		int step = 0;
		System.out.println("Test for ODBC-Connection follows..");
		
		try
		{
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
		}
		catch (Exception e)
		{
			if (test_mode)
				System.out.println("pcdb_iface2 read_odbc_data  Treiber? : "+e.getMessage());
			
		}		
		step++;	//-(1)
		String c_kette = "jdbc:odbc:KHK_IFACE";          
		ResultSet ors; 
		try
		{
			step++;	//-(2)	
			Connection con = DriverManager.getConnection(c_kette," "," ");
			
			step++;	//-(3)
			System.out.println("Conn. aufgebaut ! step : "+step);
			
			DatabaseMetaData mdt = con.getMetaData();
			
			if(mdt == null)
				System.out.println("ODBC KHK keine Metadaten verfügbar !");
			step++;	//-(4)
			System.out.println("ODBC Datenbank : "+mdt.getDatabaseProductName()+" step : "+step);
			System.out.println("ODBC-Treiber : "+mdt.getDriverName()+" Version : "+mdt.getDriverMajorVersion()+"."+mdt.getDriverMinorVersion());
			step++;	//-(5)
			
			Statement ostmt = (Statement) con.createStatement();

			step++;	//-(6)
			System.out.println("Statement aufgebaut ! step : "+step);
			
			sql_text = "SELECT * FROM Buchungskreise";
						
			ors = ostmt.executeQuery(sql_text);
			step++;	//-(7)
			System.out.println("Query gesetzt, Resultset aufgebaut ! step : "+step);
			
			while(ors.next())
			{
				System.out.println(ors.getObject(1)+" "+ors.getObject(2));
			}
			ors.close();  
				//System.out.println("SQL-Fehler : "+sql_text);
			con.close();
		}
		catch (Exception e)
		{
				//if (test_mode)
					System.out.println("pcdb_iface2 read_odbc_data sonst.Fehler : "+e.getMessage() + " \nStep : "+step);
	                        //cn.close();            
				//rueck = ERR_UNKNOWN;	//- sonstige..
		}			
			
		 		
	}
}
```

und jetzt die MEldung in der Console von Eclipse :

```
Test for ODBC-Connection follows..
Conn. aufgebaut ! step : 3
ODBC Datenbank : CL ODBC Treiber step : 4
ODBC-Treiber : JDBC-ODBC Bridge (ODBCCL330.DLL) Version : 2.1
pcdb_iface2 read_odbc_data sonst.Fehler : The result set type is not supported. 
Step : 5
```

mein system :
win98se pentium4 eclipse 3.01 j2sdk 1.4.1_02
die sage-khk-dll ist unter c:\windows vorhanden

ist das jetzt ein spezielles treiber-problem ?
übrigens : catalogs auslesen geht aucht nicht !

gruß von wolf


----------



## Bleiglanz (18. Apr 2005)

offenbar geht con.createStatement() schon nicht?!

CONCUR_READ_ONLY
TYPE_FORWARD_ONLY 

sind eigentlich minimale Defaults, warum ausgerechnet DIE nicht unterstützt werden? komisch??

versuch mal andere Typen?

Ist "Buchungskreise" wirklich eine "Tabelle", oder eine "View"?


----------



## rwolf (18. Apr 2005)

danke für antwort,

nun, mit access97 krieg ich die DB ja auf und eine liste
von namen, hab jetzt mal angenommen, es seien tabellen, jedenfalls kann ich auch den inhalt listen

bei obiger java-geschichte krieg ich ja ein offenbar von sage-khk-dll erzeugtes dialog-fenster, wo das login gemacht wird,
aber create-statement macht schon exception !

außerdem kriegt man unter java keine catalogs ebensowenig
wie beim oracle-odbc-tester (is wohl auch java).

was macht ms-access anders ?
is das hersteller-abhängig (Windows) ?


hab die gleiche problembeschreibung an sage-khk geschickt,
mal sehn was kommt..

vermute, weil die tabellen original in isam-format(?) vorliegen und die odbc-sache relativ neu ist, es gibt noch kinderkrankheiten..

bisher hab ich das byteweise gelesen, aber das ist natürlich gegenüber änderungen seitens hersteller äußerst empfindlich !

mfg
wolf


----------



## DP (18. Apr 2005)

access geht da imho über ado oder ole-db ran...

wenn du den login-screen von sage bekommst, scheint der connect ja zu laufen...


----------



## rwolf (19. Apr 2005)

jaj, der läuft, aber irgendwas ist da nicht kompatibel,
zu allem überfluss spinnt seit gestern mein outlook-express :
pop/mailto zu t-online funzt nicht mehr,
weiß nicht, ob und ggf. was khk geantwortet hat  :-(


----------



## Bleiglanz (19. Apr 2005)

>>nun, mit access97 krieg ich die DB ja auf

in diesem Fall würde ich um das KHK Zeugs herumprogrammieren: 

mach dir eine stinknormale Access DB, VERKNÜPFE die Tabellen aus KHK (im Menü Datei...) und stelle mal diese Access Datenbank per ODBC zur Verfügung...


----------



## gast (19. Apr 2005)

danke erschtmal,
nun, das habe ich auch probiert,
da kommt 'ISAM-Fehler'

hab den Eindruck, SAGE-KHK hat sich an irgendwelche Specs
NICHT gehalten, vielleicht ging das nicht..

haste schon mal gesehn, wie die das speichern :
Rows aus ASCII- bzw. BIN-Daten und oft mehrere Tabellenstrukturen in einer Datei:
das is von anno Tobak (wenig Speicherplatz usw.)

werd mir mal deren webzeugs reinziehen, irgendwie muß man doch windoof-unabhängig rankommen, oder..

(jetzt geht auch t-online-mail wieder, probleme bei t-online) :
bisher nur auto-reply..

bis später..


----------



## rwolf (23. Apr 2005)

nach einer Woche : noch nix von sage khk gehört...


----------



## DP (23. Apr 2005)

ist bei sage nichts neues - die fürchten dass die leute zur konkurrenz abwandern und den datenbestand mitnehmen wollen...


----------



## Gast (2. Mai 2005)

ja,leider immer noch nix gehört..
muss also weiterhin byte-streams lesen..pfui


----------

