KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jinterop > dcom > test > MSADO


1 package org.jinterop.dcom.test;
2
3
4
5 import java.net.UnknownHostException JavaDoc;
6
7 import org.jinterop.dcom.common.JIException;
8 import org.jinterop.dcom.common.JISystem;
9 import org.jinterop.dcom.core.IJIComObject;
10 import org.jinterop.dcom.core.JIComServer;
11 import org.jinterop.dcom.core.JIProgId;
12 import org.jinterop.dcom.core.JISession;
13 import org.jinterop.dcom.core.JIString;
14 import org.jinterop.dcom.core.JIVariant;
15 import org.jinterop.dcom.win32.ComFactory;
16 import org.jinterop.dcom.win32.IJIDispatch;
17 import org.jinterop.dcom.win32.IJITypeInfo;
18
19 public class MSADO {
20
21     private JIComServer comServer = null;
22     private IJIDispatch dispatch = null;
23     private IJIComObject unknown = null;
24     private JISession session = null;
25     public MSADO(String JavaDoc address, String JavaDoc[] args) throws JIException, UnknownHostException JavaDoc
26     {
27         session = JISession.createSession(args[1],args[2],args[3]);
28         comServer = new JIComServer(JIProgId.valueOf(session,"ADODB.Connection"),address,session);
29     }
30     
31     
32     public void performOp() throws JIException, InterruptedException JavaDoc
33     {
34         unknown = comServer.createInstance();
35         dispatch = (IJIDispatch)ComFactory.createCOMInstance(ComFactory.IID_IDispatch,unknown);
36         IJITypeInfo typeInfo = dispatch.getTypeInfo(0);
37         typeInfo.getFuncDesc(0);
38         
39         dispatch.callMethod("Open",new Object JavaDoc[]{new JIString("driver=Microsoft Access Driver (*.mdb);dbq=C:\\temp\\products.mdb"),JIVariant.OPTIONAL_PARAM,JIVariant.OPTIONAL_PARAM,new Integer JavaDoc(-1)});
40         
41         JIVariant variant[] = dispatch.callMethodA("Execute",new Object JavaDoc[]{new JIString("SELECT * FROM Products"),new Integer JavaDoc(-1)});
42         if (variant[0].isNull())
43         {
44             System.out.println("Recordset is empty.");
45         }
46         else
47         {
48             IJIDispatch resultSet = (IJIDispatch)ComFactory.createCOMInstance(dispatch,variant[0].getObjectAsInterfacePointer());
49             //variant = resultSet.get("EOF");
50
while(!resultSet.get("EOF").getObjectAsBoolean())
51             {
52                 JIVariant variant2 = resultSet.get("Fields");
53                 IJIDispatch fields = (IJIDispatch)ComFactory.createCOMInstance(dispatch,variant2.getObjectAsInterfacePointer());
54                 int count = fields.get("Count").getObjectAsInt();
55                 for (int i = 0;i < count;i++)
56                 {
57                     variant = fields.get("Item",new Object JavaDoc[]{new Integer JavaDoc(i)});
58                     IJIDispatch field = (IJIDispatch)ComFactory.createCOMInstance(dispatch,variant[0].getObjectAsInterfacePointer());
59                     variant2 = field.get("Value");
60                     Object JavaDoc val = null;
61                     if (variant2.getType() == JIVariant.VT_BSTR)
62                     {
63                         val = variant2.getObjectAsString().getString();
64                     }
65                     if (variant2.getType() == JIVariant.VT_I4)
66                     {
67                         val = new Integer JavaDoc(variant2.getObjectAsInt());
68                     }
69                     System.out.println(field.get("Name").getObjectAsString().getString() + " = " + val + "[" + variant2.getType() + "]");
70                 }
71                 resultSet.callMethod("MoveNext");
72             }
73             
74             
75         }
76         
77         JISession.destroySession(session);
78     }
79     
80     public static void main(String JavaDoc[] args) {
81
82         try {
83                 if (args.length < 4)
84                 {
85                     System.out.println("Please provide address domain username password");
86                     return;
87                 }
88                 JISystem.setAutoRegisteration(true);
89                 MSADO test = new MSADO(args[0],args);
90                 test.performOp();
91             } catch (Exception JavaDoc e) {
92                 // TODO Auto-generated catch block
93
e.printStackTrace();
94             }
95     }
96     
97     
98     
99     
100     
101 }
102
Popular Tags