当前位置: 技术问答>java相关
jb6:SQL SERVER 中记录的提取,复制问题?
来源: 互联网 发布时间:2015-08-30
本文导语: 我在SQL SERVER中建立了一张表,关键字Item no,1.通过控件database连接成功,2.通过querydataset连接成功,3.将查询结果显示在jdbTable中成功,现在我的问题是如何快速将我给定的一个Item no的记录提取出来?以下是我的部分...
我在SQL SERVER中建立了一张表,关键字Item no,1.通过控件database连接成功,2.通过querydataset连接成功,3.将查询结果显示在jdbTable中成功,现在我的问题是如何快速将我给定的一个Item no的记录提取出来?以下是我的部分源代码,目的是将mms001q中满足条件的记录的Name字段提取出来并赋给ips500q中的Name字段。
mms001q.first();
while(mms001q.getString("Item no")!=Productno)
{ mms001q.next();
}
ips500q.setString("Name",mms001q.getString("Name"));
我这个提取的过程是通过循环完成的,是不是效率较低,可不可以直接通过SQL语句查询得到(这种方法是不是效率较高),如果是这样的话,怎样才能在源程序之中写SQL语句。另外,我想将mms001q中的满足某个范围的记录提取出来并复制到另外一张表中,如何做才能够实现,我现在还没有思路?请大家帮我分析一下,谢谢!
mms001q.first();
while(mms001q.getString("Item no")!=Productno)
{ mms001q.next();
}
ips500q.setString("Name",mms001q.getString("Name"));
我这个提取的过程是通过循环完成的,是不是效率较低,可不可以直接通过SQL语句查询得到(这种方法是不是效率较高),如果是这样的话,怎样才能在源程序之中写SQL语句。另外,我想将mms001q中的满足某个范围的记录提取出来并复制到另外一张表中,如何做才能够实现,我现在还没有思路?请大家帮我分析一下,谢谢!
|
java中的变量添加到sql语句中去是通过 "+变量名+" 来实现的,并不需要转义符'',所以"select * form tablename where Itemno ! = '"+Productno+"'",这句中的符号可以去掉,没有必要。
另外
上面这段SQL语句如何才能写到source code中去,比如一个Button控件中的事件处理程序中去,因为我直接设置queryDataSet1的query属性是没有办法将这段SQL语句添加到点击事件中去的,而且query属性本身怎么才能加入变量?不知道我的意思表达清楚没有?
老实说你的意思我还没有明白,为什么不将上面的代码写入一个方法doSearch内,按钮事件只需调用这个方法即可,若需要在按钮里面设定sql语句,将sql语句设定为一个String参数即可。
比如一个将数据库表记录查询并显示的按钮事件代码:
void jBView_actionPerformed(ActionEvent e) {
//刷新table显示
strTitle = "SELECT a.TerminalID,b.TerminalName,b.TerminalType,"
+ "a.StartTime,a.ExitTime,a.ExitFlag"
+ " FROM TerminalLog a,TerminalInfo b"
+ " WHERE a.TerminalID=b.TerminalID;";
//查询并刷新table处理
GetTableFromDB gtfdbn1 = new GetTableFromDB(strTitle);
table = gtfdbn1.getTable();
setSelectType();//改变控件状态
}
另外
上面这段SQL语句如何才能写到source code中去,比如一个Button控件中的事件处理程序中去,因为我直接设置queryDataSet1的query属性是没有办法将这段SQL语句添加到点击事件中去的,而且query属性本身怎么才能加入变量?不知道我的意思表达清楚没有?
老实说你的意思我还没有明白,为什么不将上面的代码写入一个方法doSearch内,按钮事件只需调用这个方法即可,若需要在按钮里面设定sql语句,将sql语句设定为一个String参数即可。
比如一个将数据库表记录查询并显示的按钮事件代码:
void jBView_actionPerformed(ActionEvent e) {
//刷新table显示
strTitle = "SELECT a.TerminalID,b.TerminalName,b.TerminalType,"
+ "a.StartTime,a.ExitTime,a.ExitFlag"
+ " FROM TerminalLog a,TerminalInfo b"
+ " WHERE a.TerminalID=b.TerminalID;";
//查询并刷新table处理
GetTableFromDB gtfdbn1 = new GetTableFromDB(strTitle);
table = gtfdbn1.getTable();
setSelectType();//改变控件状态
}
|
可以是任何类型的。不过只有字符型的需要用'',其余的不用(这是SQL中的格式)。
可以用一个querydataset来写不同的SQL语句,每次setsetQuery()中加上不同的SQL语句就可以了:
queryDataSet1.close();
queryDataSet1.setsetQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "select * form tablename where Itemno ! = '"+Productno+"'", null, true, Load.ALL));
queryDataSet1.refresh();
可以用一个querydataset来写不同的SQL语句,每次setsetQuery()中加上不同的SQL语句就可以了:
queryDataSet1.close();
queryDataSet1.setsetQuery(new com.borland.dx.sql.dataset.QueryDescriptor(database1, "select * form tablename where Itemno ! = '"+Productno+"'", null, true, Load.ALL));
queryDataSet1.refresh();
|
看来你真的不会sql看看书吧!
select ... into...
select ... into...
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。