C++ Builder与SQL Server编程,该如何处理
C++ Builder与SQL Server编程
我用C++ Builder6和SQL Server2000在开发数据库应用程序,用的是ADO连接,有几个问题:
1、在ADOTable中插入记录时,表中的“图书编号”字段设为主键,插入错误一般由编号重复引起。我写了下面这段代码,在出现异常时提示并退出该操作。但在运行时如果插入重复的记录,程序就直接中断了,无法正常退出。代码有问题吗?
try
{
if(DataModule3->ADOTable1->Active==false)
DataModule3->ADOTable1->Active=true;
DataModule3->ADOTable1->InsertRecord(ARRAYOFCONST((Edit1->Text,Edit2->Text,Edit3->Text)));
}
catch(...)
{
Application->MessageBox("图书编号重复!","输入错误",MB_OK);
return;
}
2、我用一个DataGrid控件显示表的记录,但每次运行上面的代码后,插入的记录无法立即显示,只有退出后重新进入才能看到。这是什么原因?
3、每次运行时,都弹出对话框提示输入SQL Server用户名和密码,以前用BDE时可以用一个Database控件屏蔽,请问用用ADO如何解决?
请高手指点,谢谢大家!
------解决方案--------------------
插入之前要判断,LoginPrompt改为false可以避免用户、密码提示
我用C++ Builder6和SQL Server2000在开发数据库应用程序,用的是ADO连接,有几个问题:
1、在ADOTable中插入记录时,表中的“图书编号”字段设为主键,插入错误一般由编号重复引起。我写了下面这段代码,在出现异常时提示并退出该操作。但在运行时如果插入重复的记录,程序就直接中断了,无法正常退出。代码有问题吗?
try
{
if(DataModule3->ADOTable1->Active==false)
DataModule3->ADOTable1->Active=true;
DataModule3->ADOTable1->InsertRecord(ARRAYOFCONST((Edit1->Text,Edit2->Text,Edit3->Text)));
}
catch(...)
{
Application->MessageBox("图书编号重复!","输入错误",MB_OK);
return;
}
2、我用一个DataGrid控件显示表的记录,但每次运行上面的代码后,插入的记录无法立即显示,只有退出后重新进入才能看到。这是什么原因?
3、每次运行时,都弹出对话框提示输入SQL Server用户名和密码,以前用BDE时可以用一个Database控件屏蔽,请问用用ADO如何解决?
请高手指点,谢谢大家!
------解决方案--------------------
插入之前要判断,LoginPrompt改为false可以避免用户、密码提示