C++Builder
  Начало   Форум   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Как воспользоваиться параметрами ADOQuery?  (Прочитано 1547 раз)
Hedgehog
Участник


Сказали спасибо: +2/-0
Offline

Сообщений: 33


Как воспользоваиться параметрами ADOQuery?
« : 15 Сентябрь 2016, 16:27:48 »

Использую Embarcadero® C++Builder 10 Seattle. Пробую работать с базами данных.
В PhpMyAdmin создал базу данных с полями id_file (счетчик с автоинкрементом), file_name (VARCHAR), file_size (SMALLINT) и id_data (SMALLINT).
На форме ADOConnection1, ADOQuery1, ValueListEditor1 и кнопка Button2.
1) В список ValueListEditor1 в первый столбец закидываю названия файлов, во второй размер, OK.
2) Подключаюсь к моей базе ADOConnection1->Connected = True, OK.
3) В обработчике Button2Click перекидываю данные из ValueListEditor1 в мою базу данных:
Код
void __fastcall TForm1::Button2Click(TObject *Sender)
{
AnsiString file_name, file_size;
for (int j = 1; j ValueListEditor1 ->RowCount-1; j++)
{
file_name = VLEditor1->Cells[0][j];
file_size = StrToInt(VLEditor1->Cells[1][j]);
AnsiString str = "INSERT INTO `files`(`file_name`, `file_size`) VALUES ('";
str += ValueListEditor1 ->Cells[0][j] + "', ";
str += ValueListEditor1 ->Cells[1][j] +")";
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add(str);
ADOQuery1->ExecSQL();
}
}
всё работает, OK.
Как использовать переменные file_name и file_size в качестве параметров запроса используя свойство ADOQuery1->Parameters?

Пробую так:
Код
               ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("INSERT INTO `files`(`file_name`, `file_size`) VALUES (:file_name, :file_size)");
ADOQuery1->Parameters->AddParameter()->Name = "file_name";
ADOQuery1->Parameters->ParamByName("file_name")->Value = file_name;
ADOQuery1->Parameters->AddParameter()->Name = "file_size";
ADOQuery1->Parameters->ParamByName("file_size")->Value = file_size;
ADOQuery1->ExecSQL();
Не работает  
« Последнее редактирование: 02 Июнь 2017, 10:28:48 от volvo877 » Записан
Sasha
Участник


Сказали спасибо: +13/-0
Offline

Сообщений: 413


« Ответ #1 : 22 Ноябрь 2016, 23:32:11 »

Код
      ADOQuery1->Close();
     ADOQuery1->SQL->Clear();
     ADOQuery1->SQL->Add("INSERT INTO files (file_name, file_size) VALUES (:file_name, :file_size)");
     ADOQuery1->Parameters->ParamByName("file_name")->Value = file_name;
     ADOQuery1->Parameters->ParamByName("file_size")->Value = file_size;
     ADOQuery1->ExecSQL();
 
 
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  




....

Powered by SMF 1.1.21 | SMF © 2025, Simple Machines
Страница сгенерирована за 0.081 секунд. Запросов: 19.