Topic: 这个程序哪里错了呀,大哥帮忙呀.(ODBC MetaData)

  Print this page

1.这个程序哪里错了呀,大哥帮忙呀.(ODBC MetaData) Copy to clipboard
Posted by: kkk
Posted on: 2005-12-30 09:29


import java.net.URL;
import java.sql.*;
import java.util.*;

class JdbcOdbc_test
{
ResultSet results;//用来保存从数据库中检索得到数据行的集合.
ResultSetMetaData rsmd;//用来获得ResultSet中得到的信息.
DatabaseMetaData dma;//用来收藏底层数据源的信息.
Connection con;//创建和管理一个到数据库的连接.

int numCols,i;

public JdbcOdbc_test()
{
String url="jbdc:odbc:jia";
String query="select distinctrow name from jia"+"where(Name like c%);";
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//加载JDBC-ODBC的驱动程序
con=DriverManager.getConnection(url);//创建一个连接.
dma=con.getMetaData();//返回当前连接底层数据库的DataBaseMetaData对象.
System.out.println("Connected to:"+dma.getURL());//getURL获取数据库的表名.
System.out.println("Driver"+dma.getDriverName());//获取驱动程序的名字.
//将数据库中的表名转储出来.
String[] types=new String[1];
types[0]="TABLES";
//用results用来保存从数据库中检索得到数据香的信息.
results=dma.getTables(null,null,"%",types);
dumpResults("--jia--");//显示表名.
results.close();//关闭.
}
catch(Exception e)
{
System.out.println(e);
}
try
{
results=dma.getColumns(null,null,"name",null);//返回一个描述列中可用列的ResultSet.
ResultSetMetaData rsmd=results.getMetaData();//返回ResultSetMetaData的对象.
int numCols=rsmd.getColumnCount();//返回ResultSet中的列数.
while(result.next())//将指针移到下一行.如果没有返加false.
String cname=results.getString("COLUMN_NAME");//以java的String 数据类型返回整数索引参
//数所标识的resultset的值.
System.out.println(cname+" ");
System.out.println();
results.close();
}
catch(Exception e)
{
Statement smt=con.createStatement();
result=stmt.executeQuery("select name form jia;");
}
System.out.println("--Column Names--");//输出列名.

try
{
Statement stmt=con.createStatement();
results=stmt.executeQuery("select name from jia;");//执行一个SQL select语句,返回一个单个的ResultSet对象.
}
catch(Exception e)
{
System.out.println("queery excetion");
}
try
{
Statement stmt=con.createStatement();
results=stmt.executeQuery(query);//执行一个SQL select语句,返回一个单个的ResultSet对象.
}
catch(Exception e)
{
System.out.println("query exception");
dumpResults("--Results of Query--");
}
}
}

String cname=results.getString("COLUMN_NAME");这是一个错误,
dumpResults("--jia--");//显示表名.这里也有一个错误.
我建一个数据库,一个表名为jia 数据源名也为jia.里面有三个变量.name,sex,age.
不知为什么老错呀.

2.Re:这个程序哪里错了(ODBC MetaData) [Re: kkk] Copy to clipboard
Posted by: why
Posted on: 2006-01-02 22:30

请尽量使用准确的文字描述作为标题
(甚至只是简单的错误信息)

若新帖再無恰当标题,可能会被刪除

原來的标题:
这个程序哪里错了呀,大哥帮忙呀.


Please read your code carefully and check the syntax errors first.Sad

> String cname=results.getString("COLUMN_NAME");这是一个错误,
while(result.next())

String cname should be declared outside the while block,
and it is suggested to use curly brackets even for single statement.

> dumpResults("--jia--");//显示表名.这里也有一个错误.
Where is this dumpResults(String) defined?

What are you trying to do in the catch block with this mess?
catch(Exception e)
{
Statement smt=con.createStatement();
result=stmt.executeQuery("select name form jia;");
}

> String query="select distinctrow name from jia"+"where(Name like c%);";
distinctrow is not standard SQL syntax, are you using M$ Access?


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923