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


Автор: SydeX 24.11.2005, 20:16
Здраствуйте глубокоуважаемые,
Задам очередной глупый вопрос, прошу не обижаться - на дураков не обижаются -
вот кусочек кода:

Код

                         Form1->ib_dataset4->Close();
                         if(Form55->OpenPictureDialog1->Execute()==FALSE) return;
                         Form1->ib_dataset4->Params->Clear();
                         Form1->ib_dataset4->Params->CreateParam(ftGraphic, "ImageContent", ptInput);
                         Form1->ib_dataset4->Params->ParamByName("ImageContent")->LoadFromFile(OpenPictureDialog1->FileName, ftGraphic);
                         Form1->ib_dataset4->CommandText = "INSERT INTO "+AnsiString(Form55->temporary_table_prefix)+"_valm_images (vid, indexid, image_binary) VALUES('"+AnsiString(Form55->vid)+"', "+AnsiString(newimageindex)+", ':ImageContent';";
                         Form1->ib_dataset4->ExecSQL();



Имею Unexpected End of command,
:ImageContent должно быть содержимоей файла с картинкой.
Сижу с этим уже целый день, никак не могу понять, что я делаю не так.
Буду очень признателен, если кто нибудь ткнёт меня носом в то место где грабли...
Добавлено @ 20:26
Идиот, каюсь, скобку в конце забыл поставить.

Автор: SydeX 24.11.2005, 20:26
Прошу прощения за беспокойство.

Автор: SydeX 24.11.2005, 20:37
Час от часу не легче - теперь имею No parameter for name ImageContent,
где я опять "вступил" ?

Автор: Vyacheslav 25.11.2005, 10:46
Зачем ImageContent взял в одинарные кавычки. В кавычках это уже не параметр, а просто строка.
Ну и совет. Очень трудно читать такой код
1) Не следует использовать неименнованные константы
2) Лучше использовать форматирование , чем непосредсвенное набирание строки
Код

          const string SQLFormat = "insert into %d_valm_images(vid, indexid, image_binary) VALUES( :vid,:index, :image )";

          Form1->ib_dataset4->Close();
          if(!Form55->OpenPictureDialog1->Execute()) {
                 return;
         }
          Form1->ib_dataset4->Params->Clear();
          TParam* param = Form1->ib_dataset4->Params->CreateParam(ftString, "vid", ptInput);
          param->AsString = AnsiString(Form55->vid);
          param = Form1->ib_dataset4->Params->CreateParam(ftInteger, "index", ptInput);
          param->AsInteger =  newimageindex;
          param = Form1->ib_dataset4->Params->CreateParam(ftGraphic, "image", ptInput);
          param->LoadFromFile(OpenPictureDialog1->FileName, ftGraphic);
          Form1->ib_dataset4->CommandText = Format(SQLFormat, ARRAYOFCONST((Form55->temporary_table_prefix))); 
         Form1->ib_dataset4->ExecSQL();


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