powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как передать файл в хранимую процедуру?
13 сообщений из 13, страница 1 из 1
Как передать файл в хранимую процедуру?
    #32076446
АМС
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как правильно передать содержимое текстового файла в качестве параметра хранимой процедуры?
Сейчас я пытаюсь делать это так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
procedure p;
var
Ftext:  TStringList;
begin
Ftext:=TStringList.Create;
Ftext.LoadFromFile('file.txt');
Query.Parameters.ParamByName('P1').Value:=Ftext.Text;
end;

Но в HELP'е написано, что StringList добавляет в конце строк <CR><LF>, а мне этого не надо. И лучше вообще не преобразовывать исходный файл!
...
Рейтинг: 0 / 0
Как передать файл в хранимую процедуру?
    #32076452
Фотография KirillovA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
procedure p;
var Ftext : TStringList;
     Count :Integer;
     S :string;
begin
  Ftext:=TStringList.Create;
  try
    Ftext.LoadFromFile('file.txt');
    S := '';
    for Count :=  0  to Ftext.Count -  1  do
      if not (S = '')
         then S := S + ' ' + Ftext [Count]
         else S := Ftext [Count];
    Query1.ParamByName('P1').Value:=Ftext.Text;
  finally
    Ftext.Free;
  end;
end;

Пойдет?
...
Рейтинг: 0 / 0
Как передать файл в хранимую процедуру?
    #32076455
Фотография KirillovA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В догонку...
если хошь екзекьютить файло - юзай isql.exe - там есть така возможность.
...
Рейтинг: 0 / 0
Как передать файл в хранимую процедуру?
    #32076488
Alex Alexeev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
Query.Parameters.ParamByName('P1').LoadFormFile('file.txt', ftString {или другой тип TFieldType}) 

Так может?
...
Рейтинг: 0 / 0
Как передать файл в хранимую процедуру?
    #32076489
Mich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>Сейчас я пытаюсь делать это так
Ну. Работает, нет?
в HELP'е написано, что StringList добавляет в конце строк <CR><LF>
Не искал именно эту фразу, но уверен, что она написана в контексте "Если вы добавляете...
Код: plaintext
1.
2.
3.
Ftext.Add('str1');
Ftext.Add('str2');
Ftext.r.SaveToFile('1.txt')

то между str1 и str2 будут <CR><LF>, несмотря на то, что str1 их не содержит"
Будет ли <CR><LF> после str2, мне проверять лениво. НО ВЫ ВСЕГО ЛИШЬ загружаете файл! <CR><LF> в этом случае используются для разбивки по string'ам. Ftext[0]='str1', Ftext='str2' . Потом корректно передаете. Нормально.
P.S. Самый популярный вопрос форума: какая СУБД, через какие компоненты работа. В Вашем случае еще и "какой тип у параметра".
_________
...
Рейтинг: 0 / 0
Как передать файл в хранимую процедуру?
    #32076528
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex Alexeev правильно ответ дал.
Чего руки со всякими стринглистами ломать?
...
Рейтинг: 0 / 0
Как передать файл в хранимую процедуру?
    #32076548
Фотография KirillovA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> tygra
)), согласен.
...
Рейтинг: 0 / 0
Как передать файл в хранимую процедуру?
    #32076620
АМС
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex Alexeev и Mich:
Сейчас у меня параметр типа ftString. Но при этом русские буквы искажаются до безобразия, т.к. файл содержит символы Юникода. Когда пытаюсь передать как WideString,
Код: plaintext
1.
Qry.Parameters.ParamByName('FT').LoadFromFile(FileName,ftWideString);

то получаю ошибку:
Код: plaintext
Access violation at address  75371555  in module 'sqloledb.dll'.

Какой тип надо задать, чтобы передавалось как надо? В хранимой процедуре параметр имеет тип ntext.
...
Рейтинг: 0 / 0
Как передать файл в хранимую процедуру?
    #32076622
Trong
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну значит, видимо, "руки ломать" таки придется ... И конвертить через промежуточную переменную.
...
Рейтинг: 0 / 0
Как передать файл в хранимую процедуру?
    #32076669
Mich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Trong
Точно.
Или попытаться заставить ХП работать с юникодом.
_______
...
Рейтинг: 0 / 0
Как передать файл в хранимую процедуру?
    #32076793
AMS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
AMS
Гость
А как конвертировать строку в Юникод?
...
Рейтинг: 0 / 0
Как передать файл в хранимую процедуру?
    #32076858
Alex Alexeev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2AMS
StringToWideChar
...
Рейтинг: 0 / 0
Как передать файл в хранимую процедуру?
    #32079162
АМС
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На деле оказалось UTF8toWideString
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как передать файл в хранимую процедуру?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]