DM->Query1->Close();
DM->Query1->SQL->Clear();
DM->Query1->SQL->Add("delete from filetable where 文件名称=:a1 and 发文日期=:a2 and 文号=:a3 and 发文机关=:a4 and 扩展一=:a5 and 扩展二=:a6");
DM->Query1->ParamByName("a1")->AsString=Edit1->Text;
DM->Query1->ParamByName("a2")->AsString=Edit2->Text;
DM->Query1->ParamByName("a3")->AsString=Edit3->Text;
DM->Query1->ParamByName("a4")->AsString=Edit4->Text;
DM->Query1->ParamByName("a5")->AsString=Edit5->Text;
DM->Query1->ParamByName("a6")->AsString=Edit6->Text;
DM->Query1->ExecSQL();
Add("delete from filetable where 文件名称=':a1' and 发文日期=':a2' and 文号=':a3' and 发文机关=':a4' and 扩展一=':a5' and 扩展二=':a6'");即你的语句中文本型的数据要用单引号括起来
用trim去空格试试!
To: zxdragon(zxdragon) 我的语句没有毛病,运行都好使,没有任何报警。
To:pengdali(大力) 我的所有字段都是A型,我用了Trim效果还是一样。我现在将我的语句暂时改为下面的这样,想试一下条件是否正确。
DM->Query1->Close();
DM->Query1->SQL->Clear();
DM->Query1->SQL->Add("select 文件名称 from filetable where 文件名称=:a1 and 发文日期=:a2 and 文号=:a3 and 发文机关=:a4 and 扩展一=:a5 and 扩展二=:a6");
DM->Query1->ParamByName("a1")->AsString=Trim(Edit1->Text);
DM->Query1->ParamByName("a2")->AsString=Trim(Edit2->Text);
DM->Query1->ParamByName("a3")->AsString=Trim(Edit3->Text);
DM->Query1->ParamByName("a4")->AsString=Trim(Edit4->Text);
DM->Query1->ParamByName("a5")->AsString=Trim(Edit5->Text);
DM->Query1->ParamByName("a6")->AsString=Trim(Edit6->Text);
//DM->Query1->ExecSQL();
DM->Query1->Open();
ShowMessage(DM->Query1->FieldByName("文件名称")->AsString);结果输出的提示框为空。是我的条件错了吗?
我对照过了,应该没问题呀!
请指教!!!!
delete from filetable where 文件名称=:a1 and 发文日期=:a2 and 文号=:a3 and 发文机关=:a4 and 扩展一=:a5 and 扩展二=:a6
无法删除记录,而当这个记录中的所有字段都不空时才能被删除。比如:字段“发文日期”为空,即使Edit2中不填入东西,也不能把该记录删除掉。为什么?该怎么办呢??
查询Sql就变成:'delete from filetable where 文件名称=:a1 and 发文日期= and 文号=:a3 and 发文机关=:a4 and 扩展一=:a5 and 扩展二=:a6'
明显这个语句是错误的。
可以加isnull限定。
DM->Query1->SQL->Clear();
DM->Query1->SQL->Add("select 文件名称 from filetable where 文件名称=:a1 and 发文日期=:a2 and 文号=:a3 and 发文机关=:a4 and 扩展一=:a5 and 扩展二=:a6");
DM->Query1->ParamByName("a1")->AsString=Trim(Edit1->Text);
DM->Query1->ParamByName("a2")->AsString=Trim(Edit2->Text);
DM->Query1->ParamByName("a3")->AsString=Trim(Edit3->Text);
DM->Query1->ParamByName("a4")->AsString=Trim(Edit4->Text);
DM->Query1->ParamByName("a5")->AsString=Trim(Edit5->Text);
DM->Query1->ParamByName("a6")->AsString=Trim(Edit6->Text);
DM->Query1->Open();
DM->Query1->Next();
ShowMessage(DM->Query1->FieldByName("文件名称")->AsString);
把你的表字段设为不许空,加默认值为''
2、
if (Trim(Edit1->Text)="")
变量1=null
else
变量1=Trim(Edit1->Text);
.......
DM->Query1->Close();
DM->Query1->SQL->Clear();
DM->Query1->SQL->Add("delete from filetable where 文件名称=:a1 and 发文日期=:a2 and 文号=:a3 and 发文机关=:a4 and 扩展一=:a5 and 扩展二=:a6");
DM->Query1->ParamByName("a1")->AsString=变量1;
DM->Query1->ParamByName("a2")->AsString=Edit2->Text;
DM->Query1->ParamByName("a3")->AsString=Edit3->Text;
DM->Query1->ParamByName("a4")->AsString=Edit4->Text;
DM->Query1->ParamByName("a5")->AsString=Edit5->Text;
DM->Query1->ParamByName("a6")->AsString=Edit6->Text;
DM->Query1->ExecSQL();
我把默认值改成了NULL,然后在程序中作判断,将变量1=“NULL”,才好使了。
直接写成变量1=null不好使。
结帐了。