Простой вопрос по ADOConnection1->Execute
Компоненту ADOConnection1 задаю ConnectionString следующее
Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=Schemes;Data Source=COMPUTER
Как сделать так, что бы это работало
void __fastcall TForm1Button1Click(TObject *Sender)
{
const WideString sql = "CREATE TABLE phpbb2_New_Table (First nvarchar(15), Second nvarchar(15))";
ADOConnection1->Execute(sql, cmdUnknown, eoAsyncExecute);
}
Возникает ошибка
[C++ Error] Unit1.cpp(22) E2285 Could not find a match for 'TADOConnectionExecute(const WideString,TCommandType,TExecuteOption)'
Забей на параметры. Во-первых, задай нормальную строку путём нажатия кнопки с тремя точками в ConnectionString. Во-вторых, используй TADOQuery и его ExecSQL().
TADOCommand* ADOComm->CommandText="Create Database aaaa"
ADOComm->Execute();
ADOComm->CommandText="CREATE TABLE phpbb2_aaaa..mytable ";
ADOComm->Execute();
Я еще столкнулся с проблемой такой что нужно использовать полные имена. Система не понимает в какой именно базе нужно создать таблицу и ей нужно явно это указать. То есть когда пишешь CREATE TABLE phpbb2_Databasename.Ownername.Tablename. В таком виде все пропирало в SQL Server 2000. правда, но думаю это не принципиально.