MSysObjects代表什么? MSysObjects是acces系统表我现在如果想知道在acces数据库train中,有没有d1,该怎么写? 连接上据库train以后执行 SELECT [NAME] FROM MSysObjects WHERE TYPE=1 and [name]='d1'就行了 如果有结果集产生这存在此表
;( 不能读取记录,在MSysObjects上没有读取数据权限
新建一个查询试试: 打开数据库--〉查询—〉在设计视图中创建查询--〉关闭--〉视图--〉sql视图--〉 SELECT [NAME] FROM MSysObjects WHERE TYPE=1 --〉保存(输入名字) 然后在程序中查询此查询
我照你说的做了 仍然是没有读取权限 :( 见鬼了,我用的xp的access,可能和这个有关系吗?
应该没有关系。可能和Access版本有关系
SELECT [NAME] FROM MSysObjects WHERE TYPE=1 and [name]='d1' 你到数据库里做是可以的,但是,用在外部程序中就可能这样: [Microsoft][ODBC Microsoft Access Driver] 不能读取记录;在 'msysobjects' 上没有读取数据权限。
先建一张表tablenames 然后再建这个查询: select name into tablenames from msysobjects where type=1 以后就从这个tablenames 判断
imagex:我用你的方法,一样是没有读取权限 [Microsoft][ODBC Microsoft Access Driver] 不能读取记录;在 'msysobjects' 上没有读取数据权限。
转贴: import java.sql.*;public class getTableName { public getTableName() {}//end inst public static void main(String[] args) throws Exception{ String driver="com.microsoft.jdbc.sqlserver.SQLServerDriver"; String url="jdbc:microsoft:sqlserver://kknd97:1433;DatabaseName=jbdb"; String user="sa"; String pass=""; Class.forName(driver); Connection con=DriverManager.getConnection(url,user,pass); DatabaseMetaData dmd =con.getMetaData(); String[] types=new String[6]; ResultSet rs=dmd.getTables(null,null,"%",null); while(rs.next()){ for(int i=1;i<=5;i++){ types[i]=rs.getString(i); }//end for System.out.println("类型["+types[4]+"]名称["+types[3]+"]"); System.out.println(""); }//end while }//end main}//end class 注意事项 1 一定要有mssql的jdbc如果你使用的是其他数据库,请修改我访问数据库的jdbc参 数 2 如果使用jdbc一定要有jdbc的类包,并且保证能够引用 3 请察看javadoc中关于DatabaseMetaData类的说明,在 java.sql.DatabaseMetaData最后 祝你好运!
因为我原来问这个问题的时候,有人要我用select * from d1 ,说返回的记录数不为0就可以了,但是,d1原本就是空的.我用的是access作为数据库的.
我现在如果想知道在acces数据库train中,有没有d1,该怎么写?
谢谢!
呵呵,我这个人真实太麻烦你了
MSysObjects是acces系统表我现在如果想知道在acces数据库train中,有没有d1,该怎么写?
连接上据库train以后执行
SELECT [NAME] FROM MSysObjects WHERE TYPE=1 and [name]='d1'就行了
如果有结果集产生这存在此表
不能读取记录,在MSysObjects上没有读取数据权限
打开数据库--〉查询—〉在设计视图中创建查询--〉关闭--〉视图--〉sql视图--〉
SELECT [NAME] FROM MSysObjects WHERE TYPE=1
--〉保存(输入名字)
然后在程序中查询此查询
仍然是没有读取权限
:(
见鬼了,我用的xp的access,可能和这个有关系吗?
你到数据库里做是可以的,但是,用在外部程序中就可能这样:
[Microsoft][ODBC Microsoft Access Driver] 不能读取记录;在 'msysobjects' 上没有读取数据权限。
然后再建这个查询:
select name into tablenames from msysobjects where type=1
以后就从这个tablenames
判断
[Microsoft][ODBC Microsoft Access Driver] 不能读取记录;在 'msysobjects' 上没有读取数据权限。
import java.sql.*;public class getTableName { public getTableName() {}//end inst public static void main(String[] args) throws Exception{
String driver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
String url="jdbc:microsoft:sqlserver://kknd97:1433;DatabaseName=jbdb";
String user="sa";
String pass=""; Class.forName(driver);
Connection con=DriverManager.getConnection(url,user,pass);
DatabaseMetaData dmd =con.getMetaData(); String[] types=new String[6]; ResultSet rs=dmd.getTables(null,null,"%",null); while(rs.next()){
for(int i=1;i<=5;i++){
types[i]=rs.getString(i);
}//end for
System.out.println("类型["+types[4]+"]名称["+types[3]+"]");
System.out.println("");
}//end while }//end main}//end class
注意事项 1 一定要有mssql的jdbc如果你使用的是其他数据库,请修改我访问数据库的jdbc参
数
2 如果使用jdbc一定要有jdbc的类包,并且保证能够引用
3 请察看javadoc中关于DatabaseMetaData类的说明,在
java.sql.DatabaseMetaData最后 祝你好运!