做了一个java附加数据库文件的小例子,到了连接的时候遇到了问题,
提示:com.microsoft.sqlserver.jdbc.SQLServerException: '{' 附近有语法错误。网上搜了好多,没有有用的解决方案.
望达人帮忙解决,感激不尽!
package db;import java.awt.Container;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JTextArea;
import javax.swing.JScrollPane;
import java.awt.dnd.DropTarget;
import javax.swing.JTextField;
import java.awt.Rectangle;
import java.awt.*;
import javax.swing.JFrame;
import javax.swing.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class DropFrame extends JFrame{
/**
*
*/
private JTextField textField1;
private JTextField textField2;
private JButton jButtion; public DropFrame()
{
//setTitle("主界面");
//setSize(400,300); addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
} });
JPanel jpLables = new JPanel();
jpLables.setLayout(new GridLayout(2, 1)); jpLables.add(new JLabel("文件一:(*.mdf)"));
jpLables.add(new JLabel("文件二:(*.ldf)"));
textField1=new JTextField("拖动文件到此位置",20);
textField2=new JTextField("拖动文件到此位置",20); //textField1.setSize(100,60);
//textField2.setSize(100,60); JPanel jpTextFields=new JPanel();
jpTextFields.setLayout(new GridLayout(2, 1)); //jpTextFields
jpTextFields.add(textField1);
jpTextFields.add(textField2); JPanel p1=new JPanel();
JPanel p2=new JPanel(); p1.setLayout(new BorderLayout());
p1.add(jpLables,BorderLayout.WEST);
p1.add(jpTextFields,BorderLayout.CENTER);
p2.setLayout(new FlowLayout(FlowLayout.CENTER));
p2.add(jButtion=new JButton("确认附加")); Container contentPane=getContentPane();
contentPane.setLayout(null);
p1.setBounds(new Rectangle(30,30,300,80));
contentPane.add(p1,null);
p2.setBounds(new Rectangle(100,110,180,100));
contentPane.add(p2,null);
jButtion.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{ String[] arg=new String[2];
arg[0]=textField1.getText();
arg[1]=textField2.getText(); DB d=new DB();
try{ d.Additional(arg);
}catch(Exception ex)
{
ex.printStackTrace();
}
}
});
//JScrollPane
//美化窗口操作JScrollPane
new DropTarget(textField1,new TextDropTargetListener(textField1));
new DropTarget(textField2,new TextDropTargetListener(textField2)); //contentPane.add(textField,"Center"); }}
package db;import java.sql.*;
class DB
{
public DB()
{
}
public void Additional(String[] proam)throws Exception
{ System.out.println(proam[0]);
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url="jdbc:sqlserver://localhost:1433;databasename=master";
String sql="{?=sp_attach_db(?,?,?)}";
Connection cn=null;
CallableStatement cmd = null;
cn = DriverManager.getConnection(url,"sa","accp");
cmd = cn.prepareCall(sql);
cmd.registerOutParameter(1,java.sql.Types.INTEGER);
System.out.println("121");
cmd.setString(2,setSt("bbs"));
cmd.setString(3,setSt(proam[0])); cmd.setString(4,setSt(proam[1]));
cmd.execute();System.out.println("122");
int k=cmd.getInt(1);
if(k==1)
System.out.println("成功"); }
public String setSt(String st)
{
StringBuffer sb=new StringBuffer();
//这里去掉N也试过了
sb=sb.append("N\'").append(st).append("\'");
return sb.toString().trim();
}
}package db;import javax.swing.JFrame;
import java.awt.Dimension;
import java.awt.Toolkit;public class Test
{
public static void main(String[]args )
{ Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
int screenWidth = screenSize.width;
int screenHeight = screenSize.height;
// 創建框架
JFrame frame= new DropFrame();
frame.setTitle("運營管理平臺");
frame.setSize(400, 200); // 取到中間位置
int x = (screenWidth - frame.getSize().width) / 2;
int y = (screenHeight - frame.getSize().height) / 2; // 設置frame屬性
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocation(x, y);
frame.show();
}
}
提示:com.microsoft.sqlserver.jdbc.SQLServerException: '{' 附近有语法错误。网上搜了好多,没有有用的解决方案.
望达人帮忙解决,感激不尽!
package db;import java.awt.Container;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JTextArea;
import javax.swing.JScrollPane;
import java.awt.dnd.DropTarget;
import javax.swing.JTextField;
import java.awt.Rectangle;
import java.awt.*;
import javax.swing.JFrame;
import javax.swing.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class DropFrame extends JFrame{
/**
*
*/
private JTextField textField1;
private JTextField textField2;
private JButton jButtion; public DropFrame()
{
//setTitle("主界面");
//setSize(400,300); addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
} });
JPanel jpLables = new JPanel();
jpLables.setLayout(new GridLayout(2, 1)); jpLables.add(new JLabel("文件一:(*.mdf)"));
jpLables.add(new JLabel("文件二:(*.ldf)"));
textField1=new JTextField("拖动文件到此位置",20);
textField2=new JTextField("拖动文件到此位置",20); //textField1.setSize(100,60);
//textField2.setSize(100,60); JPanel jpTextFields=new JPanel();
jpTextFields.setLayout(new GridLayout(2, 1)); //jpTextFields
jpTextFields.add(textField1);
jpTextFields.add(textField2); JPanel p1=new JPanel();
JPanel p2=new JPanel(); p1.setLayout(new BorderLayout());
p1.add(jpLables,BorderLayout.WEST);
p1.add(jpTextFields,BorderLayout.CENTER);
p2.setLayout(new FlowLayout(FlowLayout.CENTER));
p2.add(jButtion=new JButton("确认附加")); Container contentPane=getContentPane();
contentPane.setLayout(null);
p1.setBounds(new Rectangle(30,30,300,80));
contentPane.add(p1,null);
p2.setBounds(new Rectangle(100,110,180,100));
contentPane.add(p2,null);
jButtion.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{ String[] arg=new String[2];
arg[0]=textField1.getText();
arg[1]=textField2.getText(); DB d=new DB();
try{ d.Additional(arg);
}catch(Exception ex)
{
ex.printStackTrace();
}
}
});
//JScrollPane
//美化窗口操作JScrollPane
new DropTarget(textField1,new TextDropTargetListener(textField1));
new DropTarget(textField2,new TextDropTargetListener(textField2)); //contentPane.add(textField,"Center"); }}
package db;import java.sql.*;
class DB
{
public DB()
{
}
public void Additional(String[] proam)throws Exception
{ System.out.println(proam[0]);
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url="jdbc:sqlserver://localhost:1433;databasename=master";
String sql="{?=sp_attach_db(?,?,?)}";
Connection cn=null;
CallableStatement cmd = null;
cn = DriverManager.getConnection(url,"sa","accp");
cmd = cn.prepareCall(sql);
cmd.registerOutParameter(1,java.sql.Types.INTEGER);
System.out.println("121");
cmd.setString(2,setSt("bbs"));
cmd.setString(3,setSt(proam[0])); cmd.setString(4,setSt(proam[1]));
cmd.execute();System.out.println("122");
int k=cmd.getInt(1);
if(k==1)
System.out.println("成功"); }
public String setSt(String st)
{
StringBuffer sb=new StringBuffer();
//这里去掉N也试过了
sb=sb.append("N\'").append(st).append("\'");
return sb.toString().trim();
}
}package db;import javax.swing.JFrame;
import java.awt.Dimension;
import java.awt.Toolkit;public class Test
{
public static void main(String[]args )
{ Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
int screenWidth = screenSize.width;
int screenHeight = screenSize.height;
// 創建框架
JFrame frame= new DropFrame();
frame.setTitle("運營管理平臺");
frame.setSize(400, 200); // 取到中間位置
int x = (screenWidth - frame.getSize().width) / 2;
int y = (screenHeight - frame.getSize().height) / 2; // 設置frame屬性
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocation(x, y);
frame.show();
}
}
解决方案 »
- java黑白棋求救!!
- 运算符 + 不能应用于 java.lang.Object,java.lang.Object
- 一个奇怪的问题啊!!想获得自己web应用所在服务器的外网ip~~查看了很多~下面的方法都不行
- ArrayIndexOutOfBoundsException
- 这个怎么插入不到数据库里面呢?
- Java中的if/else用法
- 关于运行jar包的问题
- 压缩多个文件成为一个zip时,怎么多个文件的内容到了最后一个文件中,而前的文件内容为空?(分以后补!现在我一分没了)
- 没有main函数的程序怎么用JDK执行?
- The import java.util.Arrays cannot be resolved
- 扫描指定目录的所有的文件和子目录中的文件,把扫描到的文件的文件名,文件大小,文件时间和文件MD5记录到一个xml文件中
- jdbc调用oracle存储过程返回自定义列表的问题
import java.awt.datatransfer.Transferable;
import java.awt.dnd.DnDConstants;
import java.awt.dnd.DropTargetDragEvent;
import java.awt.dnd.DropTargetDropEvent;import java.awt.dnd.DropTargetEvent;
import java.awt.dnd.DropTargetListener;
import java.io.File;
import java.io.InputStream;
import java.util.Iterator;public class TextDropTargetListener implements DropTargetListener {
private JTextField textArea;
public TextDropTargetListener(JTextField jta)
{
textArea=jta;
} public void dragEnter(DropTargetDragEvent event)
{
//getDropAction返回用户的操作 int a=event.getDropAction();
if((a & DnDConstants.ACTION_COPY)!=0)
{
textArea.setText("ACTION_COPY\n");
}
if((a & DnDConstants.ACTION_MOVE)!=0)
{
textArea.setText("ACTION_MOVE\n");
}
if((a & DnDConstants.ACTION_LINK)!=0)
{
textArea.setText("ACTION_LINK\n");
} if(!isDragAcceptable(event))
{
event.rejectDrag(); return;
}
} public void drop(DropTargetDropEvent dtde) {
if(!isDragAcceptable(dtde))
{
dtde.rejectDrop();
return;
} dtde.acceptDrop(DnDConstants.ACTION_COPY); Transferable transferable=dtde.getTransferable(); DataFlavor[]flavors=transferable.getTransferDataFlavors(); for(int i=0;i<flavors.length;i++)
{
DataFlavor df=flavors[i];
textArea.setText("MIME Type="+ df.getMimeType()+"\n");
try
{
if(df.equals(DataFlavor.javaFileListFlavor))
{
java.util.List fileList=(java.util.List)transferable.getTransferData(df);
Iterator iterator=fileList.iterator();
while(iterator.hasNext())
{
File f=(File)iterator.next();
textArea.setText(f+"\n");
}
}
else if(df.equals(DataFlavor.stringFlavor))
{
String s=(String)transferable.getTransferData(df);
textArea.setText(s+"\n");
}
else if(df.isMimeTypeEqual("text/plain"))
{
String charset=df.getParameter("charset");
InputStream in= (InputStream)transferable.getTransferData(df); boolean flag=true; int ch;
if(charset.equals("ascil"))
{
do
{
ch=in.read();
if(ch!=0 && ch!=-1)
{
textArea.setText(""+(char)ch); }
else
flag=false;
}while(flag); }
else if(charset.equals("unicode"))
{
boolean little=true;
do
{
ch=in.read();
int ch2=in.read();
if(ch!=-1&&little)
{
ch=(ch&0XFF)|((ch2&0XFF)<<8); }
if(ch==0XFFFF)
{
little=false;
}
else if(ch!=0&&ch!=-1)
{
textArea.setText(""+(char)ch);
}
else little=false;
}while(little);
}
textArea.setText("\n"); } }catch(Exception e)
{
textArea.setText("Error"+e+"\n");
} }
//dtde.dropCompele(); }
private boolean isDragAcceptable(DropTargetDropEvent event) {
// TODO Auto-generated method stub return (event.getDropAction()&DnDConstants.ACTION_COPY_OR_MOVE)!=0;
} private boolean isDragAcceptable(DropTargetDragEvent event) {
// TODO Auto-generated method stub
return (event.getDropAction()&DnDConstants.ACTION_COPY_OR_MOVE)!=0;
} public void dragExit(DropTargetEvent dte) {
// TODO Auto-generated method stub }
public void dragOver(DropTargetDragEvent dtde) {
// TODO Auto-generated method stub }
public void dropActionChanged(DropTargetDragEvent dtde) {
if(!isDragAcceptable(dtde))
{
dtde.rejectDrag();
return;
}
}
}
;