Article View: be.comp.programming
Article #2614Re: Newbie: Aanroepen van een functie
From: Herman Timmermans
Date: Mon, 29 Mar 2004 18:38
Date: Mon, 29 Mar 2004 18:38
139 lines
5769 bytes
5769 bytes
Simonne De Ryck wrote:
>
> "Herman Timmermans" <timmermansdot.hermanat@skynet.be> schreef in bericht
> news:4065139e$0$1980$ba620e4c@news.skynet.be...
>> Simonne De Ryck wrote:
>>
>> > Hallo,
>> >
>> > Ik heb een klasse die verbinding maakt met een database. Binnen deze
>> > klasse lukt het mij om gegevens te lezen in de database en deze
> verbinding
>> > terug te sluiten.
>> >
>> > Nu zou ik graag vanuit een andere klasse waarin ik gegevens uit de
>> > database
>> > moet halen gebruik maken van deze klasse. In deze klasse is alles
> public
>> > en toch lukt het mij niet.
>> > Het enige wat mij wel lukt is om gebruik te maken van de functie die
>> > verbinding maakt met de database. Maar om records te lezen via een sql
> en
>> > het sluiten van de connectie op het einde van de app. lukt mij niet.
>> >
>> > De functie voor het sluiten van de connectie roep ik als volgt aan:
>> > closeDatabase();
>> >
>> > Alvast bedankt & groetjes
>> *************************************************************
>> Misschien toch beter om je code en de foutmelding die je krijgt te
> posten??
>> Als ik het goed begrijp heb je een instance van de klasse die je database
>> opent, leest/update en sluit. Je hebt dan een instance van een andere
>> klasse die bepaalde gegevens uit die database benodigt en je wil
>> uiteraard gebruik maken van de methoden die je in je database object ter
>> beschikking
>> hebt? Kan je ons eens vertellen hoe deze twee objecten met elkaar
>> praten? Kan je ons wat meer info ivm dit geven?
>> Mvg, Herman
>> --
>> Suse Linux Professional 8.1 on Athlon 1.1 Ghz 512 Mb
>> Anti Spam = remove the "dot" and the "at"
>> Registered Linux User #264690
>> Visit us : http://users.skynet.be/herman.timmermans
>
>
> Dit is de klasse die ik gebruik om verbinding te maken met de database:
>
>
> import java.util.Enumeration;
> import java.sql.*;
> import java.util.Vector;
> import javax.swing.*;
>
> public class JDBCConnection {
> public Connection con;
> public JOptionPane InfoScreen;
> public Statement stmt;
> public ResultSet rs;
>
> public JDBCConnection(String dbServer, String user, String password)
> {
> try {
> Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
> System.out.println("JDBC Driver was Loaded correctly");
> }
> catch (Exception E) {
> System.err.println("Unable to load driver.");
> E.printStackTrace();
> }
> try {
> con = DriverManager.getConnection(dbServer,"","");
> System.out.println("Connected to the User Access DB.");
> }
> catch (SQLException E) {
> System.out.println("SQLException: " + E.getMessage());
> System.out.println("SQLState: " + E.getSQLState());
> System.out.println("VendorError: " + E.getErrorCode());
> }
> }
>
>
> public void closeDatabase() {
> try {
> rs.close();
> stmt.close();
> con.close();
> InfoScreen.showMessageDialog(null, "Het sluiten van de
> connectie is gelukt", "Information...", JOptionPane.INFORMATION_MESSAGE);
> }
> catch(SQLException sqlex)
> {
> InfoScreen.showMessageDialog(null, "Het sluiten van de
> connectie
> is mislukt", "Information...", JOptionPane.INFORMATION_MESSAGE);
> }
> }
>
> public void testLezen(String Sql){
> try {
> DatabaseMetaData dma = con.getMetaData();
> stmt = con.createStatement();
> rs = stmt.executeQuery(Sql);
> }
> catch (java.lang.Exception ex) {
> ex.printStackTrace ();
> }
> }
> }
>
>
>
> Als ik aan de hand van het volgende statement de connectie wil maken dan
> lukt dit:
> new JDBCConnection("jdbc:odbc:Database", "", "");
>
> Maar om records op te halen of deze connectie te sluiten dat lukt mij niet
> van in een andere klasse.
> Om deze te sluiten moet ik dan niet gewoon het volgende gebruiken:
> closeDatabase();
> Al de functies en de klasse zijn toch public.
>
> Alvast bedankt.
Zo snel even op het eerste zicht (ik heb vanavond geen tijd):
JDBCConnection myCon = new JDBCConnection("jdbc:odbc:.........);
myCon.testLezen("Select * from MijnDB");
....
myCon.closeDatabase();
????
--
Suse Linux Professional 8.1 on Athlon 1.1 Ghz 512 Mb
Anti Spam = remove the "dot" and the "at"
Registered Linux User #264690
Visit us : http://users.skynet.be/herman.timmermans
Technical Details
Message-ID:
<40686d6d$0$1960$ba620e4c@news.skynet.be>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!news.glorb.com!newsgate.cistron.nl!news2.euro.net!transit.news.xs4all.nl!skynet.be!skynet.be!louie!tjb!not-for-mailReferences:
<40648576$0$1999$ba620e4c@news.skynet.be> <4065139e$0$1980$ba620e4c@news.skynet.be> <406856f8$0$1356$ba620e4c@news.skynet.be>Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit X-Google-Thread: fcea4,553d22936774e48b X-Google-Attributes: gidfcea4,public X-Google-ArrivalTime: 2004-03-29 10:39:43 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!news.glorb.com!newsgate.cistron.nl!news2.euro.net!transit.news.xs4all.nl!skynet.be!skynet.be!louie!tjb!not-for-mail Message-ID: <40686d6d$0$1960$ba620e4c@news.skynet.be> From: Herman Timmermans <timmermansdot.hermanat@skynet.be> Subject: Re: Newbie: Aanroepen van een functie Newsgroups: be.comp.programming Reply-To: timmermansdot.hermanat@skynet.be Date: Mon, 29 Mar 2004 20:38:07 +0200 References: <40648576$0$1999$ba620e4c@news.skynet.be> <4065139e$0$1980$ba620e4c@news.skynet.be> <406856f8$0$1356$ba620e4c@news.skynet.be> Organization: ATUM BVBA User-Agent: KNode/0.7.7 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7Bit Lines: 139 NNTP-Posting-Host: 80.200.217.207 X-Trace: 1080585581 reader3.news.skynet.be 1960 80.200.217.207:6883 X-Complaints-To: usenet-abuse@skynet.be