Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Использование TQuery TDataSourse


Автор: Mpak 24.1.2007, 14:28
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 QT->SQL->Add("INSERT INTO users5 (Name, Passw)  VALUES ('ImmS', '159')");
 QT->Open();
}


Не срабатывает....

Автор: Anikmar 24.1.2007, 14:32
Попробуйте
QT->ExecSQL();

Автор: Mpak 24.1.2007, 14:51
Код

void __fastcall TForm1::Button1Click(TObject *Sender)
{
 QT->SQL->Clear();
 QT->Close();
 QT->SQL->Add("INSERT INTO users5 (Name, Passw)  VALUES ('ImmS', '159')");
 QT->ExecSQL();
 QT->Open();
}


Ошибку выдает на 7 строчке...

Автор: Vyacheslav 24.1.2007, 14:53
Код

QT->ExecSQL();
QT->Open();

Нет слов ... smile
Может все таки стоит хелп почитать

Добавлено @ 14:56 
Цитата(С++Builder Help)

 Use ExecSQL to execute queries that do not return a cursor to data (such as INSERT, UPDATE, DELETE, and CREATE TABLE).

Note:    For SELECT statements, call Open instead of ExecSQL.


instead of  - означает "вместо", а не "вместе"

Автор: Mpak 24.1.2007, 16:29
Код

void __fastcall TForm1::Button1Click(TObject *Sender)
{
 QT->SQL->Clear();
 QT->Close();
 QT->SQL->Add("INSERT INTO users5 (Name, Passw)  VALUES ('ImmS', '159')");
 QT->ExecSQL();
}


Тоже не работает smile

Автор: Anikmar 24.1.2007, 16:56
Цитата(Mpak @  24.1.2007,  16:29 Найти цитируемый пост)
Тоже не работает  


Просто не работает или ошибку выдает?

Какая БД?

Автор: Mpak 24.1.2007, 21:23
Anikmar, Ошибку выдает....
Paradox 5  for Windows

Автор: Vyacheslav 25.1.2007, 11:03
Цитата(Mpak @  24.1.2007,  21:23 Найти цитируемый пост)
Anikmar, Ошибку выдает....

Ценная информация smile . Но она бы стала поистине  бесценной, если бы Вы привели ее текст.
Я, конечно, обладаю некоторыми телепатическими способностями, но они не безграничны smile

Добавлено @ 11:05 
И вообще бы я бы посоветовал Вам ознакомиться с куучей примеров, поставляемых с С++Builder
C:\Program Files\Borland\CBuilder6\Examples\DBTasks
Может тогда и многие вопросы отпадут

Добавлено @ 11:08 
Кстати, могу проявить талант телепатии smile. Ошибка может связана с тем, что Вы QT используете одновременно и для вывода информации в DBGrid. А после того, как подменили ему запрос SELECT на INSERT и не вернули обратно, он и стал ругаться

Автор: Mpak 26.1.2007, 00:33
Vyacheslav,

Цитата

C:\Program Files\Borland\CBuilder6\Examples\DBTasks

Я оттуда уже много взял smile

Код

void __fastcall TForm1::Button1Click(TObject *Sender)
{
 QT->SQL->Clear();
 QT->Close();
 QT->SQL->Add("INSERT INTO users5 (Name, Passw)  VALUES ('ImmS', '159')");
 QT->ExecSQL();
}

 Текст ошибки
Цитата

Project PDB.exe raised exception class EDBEngineError with message 'Key Violation.'. Procces stoped. Use Step or Run to continue.

Автор: skyboy 26.1.2007, 01:03
ты, видимо, своими данными пытаешься продублировать уникальный ключ. вот оно и ругаетсяю

Добавлено @ 01:06 
или у тебя каким -то макаром появился уникальный ключ на имя/пароль(либо на связку их), либо же ты назначил поле главным ключом, а автоинкрементом сделать забыл. А так как ты это значение в инсерте не вставляешь, после второй вставки идет попытка создать вторую запись, в которой значение поля главного ключа == 0....

Автор: Mpak 26.1.2007, 04:51
Всем спасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)