Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вставка .jpg файла в MS SQL 2000 (FAQ смотрел), Просто помощь в конкретном случае .. 
:(
    Опции темы
Valentine
Дата 13.10.2006, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 13.10.2006
Где: г. Запорожье

Репутация: нет
Всего: нет



Имеем Delphi 10 и MSSQL 2000 (Win XP SP2/Win 2003). Работает всё без проблем.
Делаем запрос на выборку:

Код

procedure TFormMain.StartQuery;
const
  SSelect = 'select';
     begin
       SQLDataSet1.CommandType:= ctQuery;
         if Pos(SSelect, LowerCase(SQL)) > 0 then
           begin
             CloseDataSet;
             SQLDataSet1.SQLConnection:= SQLConnection1;
             SQLDataSet1.CommandText:= SQL;
             ClientDataSet1.Active:= True;
           end else
           begin
             SQLDataSet2.SQLConnection:= SQLConnection1;
             SQLDataSet2.CommandText:= SQL;
             SQLDataSet2.ExecSql(True);
         end;
end;

procedure TFormMain.CloseDataSet;
begin
  FormMain.Caption:= 'База данных '+SQLConnection1.Params.Values['DataBase'];
  ClientDataSet1.Close;
  SQLDataSet1.Close;
end;

procedure TFormMain.Button1Click(Sender: TObject);
begin
   SQL:= 'select * from users';
   StartQuery;
   Label1.Caption:= 'Показать таблицу Users';
end;


Всё работает. Делаем запрос на обновление:

     SQL:= 'update result set LS02='+#39+ats+#39+' where useID='+#39+ID+#39;
     StartQuery;

Опять всё работает.
Как в этом случае вставить (TQuery нет) фото (.jpg) в поле 'Foto' (типа image) таблицы 'Users".

     SQL:= 'inserst into Users(Foto) values(: ?????) where useID='+QuotedStr(ID);
     ....??
     StartQuery;               что нибудь типа этого ... smile

Извините за кучу подробностей, просто не получается что-то.

Это сообщение отредактировал(а) sergejzr - 16.10.2006, 16:20
PM MAIL   Вверх
Valentine
Дата 14.10.2006, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 13.10.2006
Где: г. Запорожье

Репутация: нет
Всего: нет



Пробовал так:
  SQL:= 'insert into Users'+'('+'Foto'+')'+' values'+'('+':Something'+') where ID='+#39+ID+#39;
  SQLDataSet2.ParamByName('Something').DataType:= ftBlob;
  SQLDataSet2.ParamByName('Something').ParamType:= ptInput;
  SQLDataSet2.ParamByName('Something').LoadFromFile(gs, ftBlob);
  StartQuery;
---> выбразывает ошибку: "SQLDataSet2: Parameter 'Something' not found."

Я, конечно, вставляю фото через буфер обмена (в связанный с гридом IDBImage) но, как говорил Федя "Это же не наш метод!".
PM MAIL   Вверх
Vit
Дата 16.10.2006, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 14
Всего: 207



Скачать DRKB (www.drkb.ru)
Там зайти в 

Базы данных ->Проблемы при работе с Blob полями

Добавлено @ 16:21 
Код

SQL:= 'insert into Users'+'('+'Foto'+')'+' values'+'('+':Something'+') where ID='+#39+ID+#39;
{------------  строка обязательна -------------}
SQLDataSet2.Parameters.ParseSQL(SQLDataSet2.SQL.text, true);  
{------------------------------------------------}
SQLDataSet2.ParamByName('Something').DataType:= ftBlob;
  SQLDataSet2.ParamByName('Something').ParamType:= ptInput;
  SQLDataSet2.ParamByName('Something').LoadFromFile(gs, ftBlob);
  StartQuery;



--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Valentine
Дата 16.10.2006, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 13.10.2006
Где: г. Запорожье

Репутация: нет
Всего: нет



Цитата(Vit @ 16.10.2006,  16:19)
Базы данных ->Проблемы при работе с Blob полями

Код

SQL:= 'insert into Users'+'('+'Foto'+')'+' values'+'('+':Something'+') where ID='+#39+ID+#39;
{------------  строка обязательна -------------}
SQLDataSet2.Parameters.ParseSQL(SQLDataSet2.SQL.text, true);  
{------------------------------------------------}
SQLDataSet2.ParamByName('Something').DataType:= ftBlob;
  SQLDataSet2.ParamByName('Something').ParamType:= ptInput;
  SQLDataSet2.ParamByName('Something').LoadFromFile(gs, ftBlob);
  StartQuery;

Выбрасываются две ошибки:
'TSQLDataSet' does not contain a member named 'Parameters'.
'TSQLDataSet' does not contain a member named 'SQL'.

dbExpress (я, конечно, могу ошибаться) что-то не очень вписывается в примеры из DRKB.
PM MAIL   Вверх
Vit
Дата 16.10.2006, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: 14
Всего: 207



Замените Parameters на Params
        


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Valentine
Дата 17.10.2006, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 13.10.2006
Где: г. Запорожье

Репутация: нет
Всего: нет



Цитата(Vit @ 16.10.2006,  21:44)
Замените Parameters на Params

Ну, эту-то замену я сделал сразу (Parameters--> Params).
А вот что делать с "... (SQLDataSet2.SQL.text, true);" я не знаю. ('TSQLDataSet' does not contain a member named 'SQL'.)
Пробовал менять "SQL.text" на "CommandText" - выбрасывает ту-же ошибку ("SQLDataSet2: Parameter 'Something' not found")
Пробовал через 'update':
Код
  SQL:= 'update users set Photo=Something where ID='+QuotedStr(ID);
  SQLDataSet2.Params.ParseSQL(SQLDataSet2.CommandText, true);
  SQLDataSet2.Params.ParamByName('Something').DataType:= ftBlob;
  SQLDataSet2.Params.ParamByName('Something').ParamType:= ptInput;
  SQLDataSet2.Params.ParamByName('Something').LoadFromFile(gs, ftBlob);
  StartQuery;

Результат тот-же("SQLDataSet2: Parameter 'Something' not found")
С уважением, Валентин.

Это сообщение отредактировал(а) Valentine - 23.10.2006, 11:26
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0557 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.