就是这么简单:  create database  Demo
创建一个设备名为Demo的数据库但是我要用一个edit可以自己命名数据库名称,问题来了,demo传过去成了'demo',
执行的时候就出错了,要如何解决这个问题?

解决方案 »

  1.   

    这里有你要的答案
    http://community.csdn.net/Expert/topic/4971/4971109.xml?temp=.7433283
      

  2.   

    procedure TmainFrm.Button1Click(Sender: TObject);
    var
    str1:string;
    str2:string;
    const
    path='d:\bochsoft\';beginstr1:='create database  '+trim(edit4.Text);
    adoquery2.SQL.Clear;
    adoquery2.SQL.Add(str1);
    adoquery2.SQL.Add('  on  primary');
    adoquery2.SQL.Add('(');
    adoquery2.SQL.Add('name=:name1,');
    adoquery2.SQL.Add('filename=:file1, ');
    adoquery2.SQL.Add('size=10MB, ');
    adoquery2.SQL.Add('filegrowth=10% ');
    adoquery2.SQL.Add(' ) ');
    adoquery2.SQL.Add('   ');
    adoquery2.SQL.Add('log on');
    adoquery2.SQL.Add('(');
    adoquery2.SQL.Add('name=:name2, ');
    adoquery2.SQL.Add('filename=:file2 ,');
    adoquery2.SQL.Add('size=1MB, ');
    adoquery2.SQL.Add('filegrowth=1%  ');
    adoquery2.SQL.Add(' ) ');
    adoquery2.Parameters[0].Value:=trim(edit4.Text);
    adoquery2.Parameters[1].Value:=path+trim(edit4.Text)+'.mdf';
    adoquery2.Parameters[2].Value:=trim(edit4.Text)+'_log';
    adoquery2.Parameters[3].Value:=path+trim(edit4.Text)+'_log.ldf';
    adoquery2.ParamCheck:=true;
    adoquery2.ExecSQL;//edit4.text为数据库名运行时总是提示第四行出错,说什么参数不对,为什么?
    以下这段sql在查询分析器里是正常执行的啊
    create database dddd
     on  primary 
    (  
     name='dddd_data', 
    filename='d:\bochsoft\dddd_data.mdf', 
    size=10MB,
    filegrowth=10% 

       
    log on
    (
    name='dddd_log', 
    filename='d:\bochsoft\dddd_log.ldf',
    size=1MB, 
    filegrowth=1%  
     )