Форум: "Базы";
Текущий архив: 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.055 c