![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как правильно сгенерить строку SQL? [D6, MSSQL]
Пуртик © (2004-10-15 12:40:00)Мастаки, помогите. Генерю строку SQL - insert into ...
Там будет два поля - image(MS SQL).Как правильно оформить строку? Брать ее в кавычки иили еще как-то? Со строками и числами все поняно, а вот с блом не совсем. Расскажите если кто решал...
Пуртик (2004-10-15 15:04:00) [1]
> а бэкап не меньше по размеру будет? чем такой скрипт (1
> байт на 2 меняеш только по этому полю)
> хотя если только одна таблица... выгрузи ее DTS-ом в аксесовскую
> базу, сделай упаковку, сархивируй, и посылай.
> восстановление тем же DTS в обратную сторону.
:) так и сделал
tERRORist (2004-10-15 14:53:00) [2]Дак получается вы у себя с сервера данные берете, из таблицы где есть поле типа image. Тогда же можно не извращаться через прогу, а вытащить данные картинки в виде строки запросом:
select master.dbo.fn_varbintohexstr(cast(ПОЛЕ as varbinary(8000)) )
from ТАБЛИЦА
sniknik (2004-10-15 14:47:00) [3]а бэкап не меньше по размеру будет? чем такой скрипт (1 байт на 2 меняеш только по этому полю)
хотя если только одна таблица... выгрузи ее DTS-ом в аксесовскую базу, сделай упаковку, сархивируй, и посылай.
восстановление тем же DTS в обратную сторону.
Пуртик (2004-10-15 14:39:00) [4]
> А как тогда картинку вставляет? Или данные уже в скрипте
> вами прописаны? А если ему захочется свою вставить :)
в скрипте, это для того чтобы восстановить данные - он грохнул данные в одной таблице, чтобы не слать весь бекап - шлю скрипт для внесения данных.
tERRORist (2004-10-15 14:34:00) [5]А как тогда картинку вставляет? Или данные уже в скрипте вами прописаны? А если ему захочется свою вставить :)
Пуртик (2004-10-15 14:31:00) [6]
> вставляет этот текст в скрипт? Жестоко...
прог он не получает, а только скрипт
tERRORist (2004-10-15 14:16:00) [7]>та я генерю скрипт для отсылки клиенту - что бы он мог этот
>скрипт зпустить и внести себе данные.
Т.е. он что, сначала получет с помощью Дельфовской проги данные картинки в виде шестнадцатеричной строки, а потом делает Ctrl-C
и вставляет этот текст в скрипт? Жестоко...
Пуртик (2004-10-15 14:10:00) [8]
> Блин, зачем тебе в Дельфи строка?
та я генерю скрипт для отсылки клиенту - что бы он мог этот скрипт зпустить и внести себе данные. В принципе я уже решил - AdeptSQL Diff - все делает как надо. Но хотелось бы с прогой разобраться...
tERRORist (2004-10-15 14:08:00) [9]Блин, зачем тебе в Дельфи строка? Вообще зачем тебе строки если ты оперируешь картинкой т.е массивом двоичных данных?
Делай в таблице поле типа image и параметр в запросе на вставку тоже image. Ему в Дельфе будет соответсвовать тип параметра ftVarBytes. Значение присвыивай Parameter.LoadFromFile(const FileName: String; DataType: TDataType)
Пуртик (2004-10-15 14:01:00) [10]
> Master.dbo.fn_varbintohexstr
в делфи
tERRORist (2004-10-15 13:55:00) [11]> привести в запросе к виду 0xFFF0FEABCD
Master.dbo.fn_varbintohexstr
Пуртик (2004-10-15 13:53:00) [12]
> sniknik © (15.10.04 13:47) [11]
то что надо! как раз. Но как его
> привести в запросе к виду 0xFFF0FEABCD
?
То же самое из БЛобомами...
tERRORist (2004-10-15 13:52:00) [13]> Какой тип поля в таблице ? Image ? Такой тип к строке не
> приводится.
для image тип параметра ftVarBytes
tERRORist (2004-10-15 13:51:00) [14]> Какой тип поля в таблице ? Image ? Такой тип к строке не
> приводится.
ftVarBytes
Johnmen (2004-10-15 13:50:00) [15]Так же, как и вырастить из тыквенного семечка свеклу. Плохо...:)))
sniknik (2004-10-15 13:47:00) [16]> плиз как записать в строку(string) значение поля если оно ftByte?
вообщето легко конвертится в самом запросе если это поле массив байт (binary) Cast(xxx AS VarChar(100) если же это блоб поле то двойная конвертация Cast(Cast(xxx AS VarBinary(100)) AS VarChar(100))
но подозреваю что нужно не это (как всегда) и поле у тебя не из этой базы и в инсерт ты запрос с данными пытаешся в дельфе составить, и параметров не "любиш"... (иначе чем обьяснить стремление именно в строку запихнуть то что для этого не предназначено)
если так то тебе свои данные "типа ftByte" нужно привести в запросе к виду 0xFFF0FEABCD (ну понятно да?)
insert into ... (...,..., 0xFFF0FEABCD)
это будет сконвертировано в бинарные данные MSSQL-ем.
Пуртик (2004-10-15 13:44:00) [17]
> Какой тип поля в таблице ? Image ? Такой тип к строке не
> приводится.
плохо....
Johnmen (2004-10-15 13:37:00) [18]>Пуртик (15.10.04 13:35) [7]
Причем здесь тогда строки всякие и фтБайты ?
Johnmen (2004-10-15 13:35:00) [19]>значение поля типа ftByte
Какой тип поля в таблице ? Image ? Такой тип к строке не приводится.
Пуртик (2004-10-15 13:35:00) [20]та нет, мне надо соредствами делфи создать скрипт заливки данных в БД, есть данные в одной БД их надо залить в другую, но скриптом.