Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.11.14;
Скачать: [xml.tar.bz2];

Вниз

Как правильно сгенерить строку SQL?   Найти похожие ветки 

 
Пуртик   (2004-10-15 12:40) [0]

Мастаки, помогите. Генерю строку SQL - insert into ...
Там будет два поля - image(MS SQL).Как правильно оформить строку? Брать ее в кавычки иили еще как-то? Со строками и числами все поняно, а вот с блом не совсем. Расскажите если кто решал...


 
Johnmen ©   (2004-10-15 12:48) [1]

параметры, TBlobField, TBlobStream etc. в хелпах есть примеры.


 
Пуртик   (2004-10-15 12:49) [2]

Нет ту тбез параметров - это скрипт для запуска в Query Analyzer.


 
Пуртик   (2004-10-15 13:20) [3]

Помогите... плиз как записать в строку(string) значение поля если оно ftByte?


 
Johnmen ©   (2004-10-15 13:21) [4]

Что-то у тебя вопросов много, а ветка одна.
Ты уж определись...


 
Пуртик   (2004-10-15 13:26) [5]

надо считать значение поля типа ftByte и сохранить его в строку - эта строка это SQL запрос вида Insert into...


 
tERRORist ©   (2004-10-15 13:31) [6]

В состав MSSQL входит утилита командной строки TEXTCOPY.EXE, которая копирует бинарник из файла в поле image базы и наоборот.

Вот пример выгрузки:
CREATE PROCEDURE outCOPY
@v_ID INTEGER,
@v_FileName varchar(200)
AS
DECLARE @cmd sysname
SET @cmd = "textcopy  /S servername /U sa /P test /D MyDB /T FilesTable /C FileImage /W "Where ID= "+ Str(@v_ID)+" " /F c:\" + @v_FileName +" /O"
exec master..xp_cmdshell @cmd
GO


Загрузку сделать по аналогии


 
Пуртик   (2004-10-15 13:35) [7]

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


 
Johnmen ©   (2004-10-15 13:35) [8]

>значение поля типа ftByte

Какой тип поля в таблице ? Image ? Такой тип к строке не приводится.


 
Johnmen ©   (2004-10-15 13:37) [9]

>Пуртик   (15.10.04 13:35) [7]

Причем здесь тогда строки всякие и фтБайты ?


 
Пуртик   (2004-10-15 13:44) [10]


> Какой тип поля в таблице ? Image ? Такой тип к строке не
> приводится.

плохо....


 
sniknik ©   (2004-10-15 13:47) [11]

> плиз как записать в строку(string) значение поля если оно ftByte?
вообщето легко конвертится в самом запросе если это поле массив байт (binary) Cast(xxx AS VarChar(100) если же это блоб поле то двойная конвертация Cast(Cast(xxx AS VarBinary(100)) AS VarChar(100))
но подозреваю что нужно не это (как всегда) и поле у тебя не из этой базы и в инсерт ты запрос с данными пытаешся в дельфе составить, и параметров не "любиш"... (иначе чем обьяснить стремление именно в строку запихнуть то что для этого не предназначено)
если так то тебе свои данные "типа ftByte" нужно привести в запросе к виду 0xFFF0FEABCD (ну понятно да?)
insert into ... (...,..., 0xFFF0FEABCD)
это будет сконвертировано в бинарные данные MSSQL-ем.


 
Johnmen ©   (2004-10-15 13:50) [12]

Так же, как и вырастить из тыквенного семечка свеклу. Плохо...:)))


 
tERRORist ©   (2004-10-15 13:51) [13]

> Какой тип поля в таблице ? Image ? Такой тип к строке не
> приводится.

ftVarBytes


 
tERRORist ©   (2004-10-15 13:52) [14]

> Какой тип поля в таблице ? Image ? Такой тип к строке не
> приводится.

для image тип параметра ftVarBytes


 
Пуртик   (2004-10-15 13:53) [15]


> sniknik ©   (15.10.04 13:47) [11]

то что надо! как раз. Но как его
> привести в запросе к виду 0xFFF0FEABCD
?
То же самое из БЛобомами...


 
tERRORist ©   (2004-10-15 13:55) [16]

> привести в запросе к виду 0xFFF0FEABCD

Master.dbo.fn_varbintohexstr


 
Пуртик   (2004-10-15 14:01) [17]


> Master.dbo.fn_varbintohexstr

в делфи


 
tERRORist ©   (2004-10-15 14:08) [18]

Блин, зачем тебе в Дельфи строка? Вообще зачем тебе строки если ты оперируешь картинкой т.е массивом двоичных данных?
Делай в таблице поле типа image и параметр в запросе на вставку тоже image. Ему в Дельфе будет соответсвовать тип параметра ftVarBytes. Значение присвыивай Parameter.LoadFromFile(const FileName: String; DataType: TDataType)


 
Пуртик   (2004-10-15 14:10) [19]


> Блин, зачем тебе в Дельфи строка?

та я генерю скрипт для отсылки клиенту - что бы он мог этот скрипт зпустить и внести себе данные. В принципе я уже решил - AdeptSQL Diff - все делает как надо. Но хотелось бы с прогой разобраться...


 
tERRORist ©   (2004-10-15 14:16) [20]

>та я генерю скрипт для отсылки клиенту - что бы он мог этот
>скрипт зпустить и внести себе данные.
Т.е. он что, сначала получет с помощью Дельфовской проги данные картинки в виде шестнадцатеричной строки, а потом делает Ctrl-C
и вставляет этот текст в скрипт? Жестоко...


 
Пуртик   (2004-10-15 14:31) [21]


>  вставляет этот текст в скрипт? Жестоко...

прог он не получает, а только скрипт


 
tERRORist ©   (2004-10-15 14:34) [22]

А как тогда картинку вставляет? Или данные уже в скрипте вами прописаны? А если ему захочется свою вставить :)


 
Пуртик   (2004-10-15 14:39) [23]


> А как тогда картинку вставляет? Или данные уже в скрипте
> вами прописаны? А если ему захочется свою вставить :)

в скрипте, это для того чтобы восстановить данные - он грохнул данные в одной таблице, чтобы не слать весь бекап - шлю скрипт для внесения данных.


 
sniknik ©   (2004-10-15 14:47) [24]

а бэкап не меньше по размеру будет? чем такой скрипт (1 байт на 2 меняеш только по этому полю)
хотя если только одна таблица... выгрузи ее DTS-ом в аксесовскую базу, сделай упаковку, сархивируй, и посылай.
восстановление тем же DTS в обратную сторону.


 
tERRORist ©   (2004-10-15 14:53) [25]

Дак получается вы у себя с сервера данные берете, из таблицы где есть поле типа image. Тогда же можно не извращаться через прогу, а вытащить данные картинки в виде строки запросом:

select master.dbo.fn_varbintohexstr(cast(ПОЛЕ as varbinary(8000)) )
from ТАБЛИЦА


 
Пуртик   (2004-10-15 15:04) [26]


> а бэкап не меньше по размеру будет? чем такой скрипт (1
> байт на 2 меняеш только по этому полю)
> хотя если только одна таблица... выгрузи ее DTS-ом в аксесовскую
> базу, сделай упаковку, сархивируй, и посылай.
> восстановление тем же DTS в обратную сторону.

:) так и сделал



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.11.14;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.5 MB
Время: 0.033 c
4-1096971678
Exciter
2004-10-05 14:21
2004.11.14
В винде до 2000ного работал Int 17h, Работа с принтером напрямую.


14-1098681277
[lamer]Barmaglot
2004-10-25 09:14
2004.11.14
Помогите с цветами...


14-1098931204
Ostap Bender
2004-10-28 06:40
2004.11.14
Договор


4-1096828629
Velzevul
2004-10-03 22:37
2004.11.14
тоновый, импульсный


9-1090223437
Evgeniy_K
2004-07-19 11:50
2004.11.14
Поворот на 180 градусов - DirectDraw





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский