ADOQuery1.SQL.Text:='DECLARE @pam int';
    ADOQuery1.SQL.Text:=' set @pam=(SELECT COUNT(*) FROM record WHERE work='''+Edit1.Text+''')';
    ADOQuery1.SQL.Text:=' if @pam<0';
    ADOQuery1.SQL.Text:=' INSERT INTO record (work) VALUES ('''+Edit1.Text+''')';
    ADOQuery1.SQL.Text:=' else print'已存在'';
------------------------------------------------------------------

解决方案 »

  1.   

    1 print不要拿出SQL server来,用ShowMessage
    2 应该时ADOQuery1.sql.add('....') or 
    ADOQuery1.SQL.Text := ADOQuery1.SQL.text + '.....';
    3 最后是ADOQuery1.ExecSQL;建议这样写:ADOQuery1.SQL.Text:='SELECT * FROM record WHERE work = ''' + Edit1.Text + '''');
    ADOQuery1.Open;
    if ADOQuery1.RecordCount = 0 then
    begin
       ADOQuery1.SQL.Text:=' INSERT INTO record (work) VALUES ('''+Edit1.Text+''')';
       ADOQuery1.ExecSQL;
    end else
       ShowMessage('已存在');