Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Копирую из InterBase в MS SQL с фотографиями! [D7, IB6.x, MSSQL]


Страницы:   1 2 3 4

DmitrichJ ©   (2007-03-30 16:19:00) 

Я перевржу БД из InterBase в MS SQL. Все данные копируются хорошо, но с фотографиями небольшая проблема. Они попадают в MS SQL в обрезаном виде-только начало фотографии, а всё остальное серое. Делаю так:

var
 stream:TStringStream;
...
//выборка из InterBase
 Form1.IBQuery1.SQL.Text:='Select * from ...';
...
//Вставляем в MS SQL
   Form1.Query1.SQL.Text:=
        'Insert into Table(...,photo) values (.... , :P)';

stream:=TStringStream.Create(Form1.IBQuery1.FieldByName('PHOTO').AsString);
Form1.Query1.ParamByName('P').LoadFromStream(stream,ftBlob);
Form1.Query1.ExecSQL;

Подскажите, что не так/

Поля в БД
InterBase: BLOB BLOB sub_type 1 segment size 1 CHARACTER SET WIN1251
MS SQL: IMAGE


Jan1   (2007-04-04 15:25:00) [21]


> Странно почему одинарные

ничего странного.


> и всё же добавляет, но такая же фигня с обрезанием картинок.
>  Уже не знаю что делать=(

не понял. что с обрезанием? теперь ошибки нет?


DmitrichJ   (2007-04-04 15:20:00) [22]

Странно почему одинарные, и всё же добавляет, но такая же фигня с обрезанием картинок. Уже не знаю что делать=(


Jan1   (2007-04-04 15:09:00) [23]


> Form1.ADOQuery1.SQL.Text:='insert into table1 (np,name,d1,
> d2) values(0,"текст",:P1,:P2)';

вместо двойных кавычек надо использовать две одинарные. И если ты уж начал использовать параметры, то чего тут всдумал вдруг подругому?
ADOQuery1 - пережиток. юзай ADOCommand.


DmitrichJ   (2007-04-04 14:51:00) [24]

Делаю запрос:

Form1.ADOQuery1.SQL.Text:='insert into table1 (np,name,d1,d2) values(0,"текст",:P1,:P2)';

Ошибка:
The name 'текст' is not permitted in this context. Only constants, expression, or variables allowed here. Column names are not permitted.

name varchar(200)


Jan1   (2007-04-04 13:58:00) [25]


> А при использовании ADO даёт ошибку.

и где она?


DmitrichJ   (2007-04-04 13:56:00) [26]

Jan1, использую BDE Query по такому же принципу. Картинки загружает, но не полностью. А при использовании ADO даёт ошибку.


DmitrichJ   (2007-04-04 13:50:00) [27]

Jan1, вот по этой схеме через BDE Query он и закружает только часть картинки, а при использовании ADO выдаёт ошибку=(


Jan1   (2007-04-04 13:46:00) [28]


...
ADOCommand.CommandText := ' insert into [ImageStore] ([ImageBody]) values(:ImageBody)';
ADOCommand.Parameters.ParameterByName('ImageBody').LoadFromFile(OpenDialog1.File Name, ftVarBytes);
ADOCommand.Execute();
...

Но учти что с большИми могут быть траблы... все зависит от сервера где крутится MS SQL...


DmitrichJ   (2007-04-04 13:06:00) [29]

Jan1, да, но проблема больше в принципе в добавлении фотографии в БД MS SQL. Т.е. вопрос звучит так: Как добавить большую картинку в MS SQL в поле IMAGE?


Jan1   (2007-04-03 18:05:00) [30]


> Jan1, хорошо. А как потом пользователям добавлть фотографии?

не понял. причем тут пользователи? тебе надо перенести данные из ФБ в МС? или чего?


DmitrichJ   (2007-04-03 17:35:00) [31]

Jan1, хорошо. А как потом пользователям добавлть фотографии?


Jan1   (2007-04-03 17:18:00) [32]


> Помогите всё же решить проблему. Пожалуйста.

млин а линкед то чего не подошел? залил бы за 5 сек и забыл бы о проблеме...


Правильный Вася   (2007-04-03 16:28:00) [33]

открываешь, находишь, читаешь описание, делаешь выводы


DmitrichJ   (2007-04-03 16:22:00) [34]

Правильный Вася, извини. Не совсем понял.


Правильный Вася   (2007-04-03 16:09:00) [35]


> Использую Query из BDE

БДЕ администратор - configuration - drivers - native - mssql - blob size + F1


DmitrichJ   (2007-04-03 15:48:00) [36]

Помогите всё же решить проблему. Пожалуйста.


Jan1   (2007-04-02 11:32:00) [37]


> При работе с InterBase таким способом закачивается в БД
> через IBQuery что угодно, а тут вот фигня какая-то=(

ключевое слово InterBase. Потому как в M SQL если мы льем чего-нить через параметры, этот гад юзает sp_executesql, а это в свою очередь накладывает отпечаток на то что, сервер пытается выделить память под всю блобину... и тут начинается самое интересное...
ЗЫ чего-то мой логин украли :)


DmitrichJ   (2007-03-30 20:15:00) [38]

При работе с InterBase таким способом закачивается в БД через IBQuery что угодно, а тут вот фигня какая-то=(


Jan   (2007-03-30 19:58:00) [39]


> Враки. Через параметры можно что угодно и сколько угодно.

нет, там все не так просто... а именно с блобом...


DmitrichJ   (2007-03-30 19:47:00) [40]

Desdechado, Как именно? Как записать картинку в поле типа IMAGE?


Страницы:   1 2 3 4

Наверх

Титульная страница Поиск, карта сайта Написать письмо