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

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

Как правильно сгенерить строку SQL? [D6, MSSQL]


Страницы:   1 2

Пуртик ©   (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]

та нет, мне надо соредствами делфи создать скрипт заливки данных в БД, есть данные в одной БД их надо залить в другую, но скриптом.


Страницы:   1 2

Наверх

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