![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как результат запроса сохранить в txt файл, чтобы потом загрузить на сервер по ftp ? [D6, MSSQL]
Tra © (2002-02-07 18:52:00)Как результат запроса сохранить в txt файл, чтобы потом загрузить на сервер по ftp ?
panov (2002-02-08 20:55:00) [1]А эти идеи в дргой ветке форума реализуются...
Tra (2002-02-08 18:52:00) [2]Спасибо за помощь:
kig
kserg@ukr.net
Romul
В итоге у меня вышло следующее:
procedure TForm1.Button4Click(Sender: TObject);
var F:TextFile;
begin
AssignFile(F, "c:\111\1.txt");
{$I-}
Rewrite(F);
{$I+}
with Query3 do
begin
Open;
while not Eof do
begin
writeln(F, Fields[0].ASString);
next;
end;
Close;
end;
CloseFile(F);
end;
end.
Query3:
select email_1
from Firms
В итоге получил тектовой файл: c:\111\1.txt
со списком почтовых адресов (email_1) из таблици Firms
С этим вроде все, теперь задача закачать этот файл с адресами
на удаленный сервер провайдера.
У кого есть идеи ?
Romul (2002-02-08 14:52:00) [3]Так ты сделай в твоей процедуре переменную типа TStringList и потом в нее закачивай данные из твоего Query. Примерно так
var
SLIst:TStringList;
begin
try
SList:=TStringList.Create;
.....
while not Query.Eof do
begin
for i:=0 to Query.DataSource.DataSet.RecordCount-1 do
SList.Strings[i]:=Query.FieldByName("Название поля в таблице").AsString+допустим пробел+еще одно поле той же строки
//так у тебя по идее заполнится структура TStringList в виде твоей таблицы
end;
SList.SaveToFile("C:\1.Txt");
finally
SList.Free;
end;
end;
Попробуй этот способ. Извини если что-то не так, сейчас просто нет возможности по быстрому это дело проверить, но принцип вроде такой.
Tra (2002-02-08 13:48:00) [4]Попробывал...
Файл получается не того формата, мне нужен "список"
1
2
3
А тут получается 1 ... 2...3....
И потом зачем мне переделывать приложение на ADO ?
Нельзя ли, допустим сделать это стандартными средствами,
Например один из вариантов:
1. while NOT Query.eof do begin Writeln(...)end
Только пока не разобрался с синтаксисом, в частности - Что должно стоять в скобках, "c:\111\1.txt" или переменная ???
Хочу заметить, что это мое первое приложение и основные трудности вызывает именно "синтаксис" (классы, переменные, константы).
Romul (2002-02-08 11:11:00) [5]А так не покатит?
ADOQuery.SaveToFile("1.txt", pfADTG);//где pfADTG (Advanced Data Tablegram format) есть еще pfXML, но первый по умолчанию стоит.
kserg@ukr.net (2002-02-08 11:02:00) [6]> kig - Название их классов начинается с TADO... ?
Уважаемый, ты мыслишь правильно: используй компаненты
с закладки ADO - это наболее подходящий класс для работы с MSSQL.
TADOConnection - установка связи с БД
TADOQuery - аналог TQuery для работы через BDE
Tra (2002-02-08 10:52:00) [7]Пардон, а что это такое?
unfam (2002-02-08 03:46:00) [8]А почему бы не воспользоваться DTS ?
Tra (2002-02-07 20:04:00) [9]Ок, буду пробывать.Спасибо
kig (2002-02-07 19:51:00) [10]Понятно.
Если в D6 таких способов нет (у меня нет D6) - то пройтись по всем записям с начала до конца и необходимые данные забрасывать, ну например в TStringList. Затем его сохранить в файл.
Tra (2002-02-07 19:27:00) [11]Нет. В основном Query
kig (2002-02-07 19:16:00) [12]Я не про сеть спрашивал ...
Я спросил через какой механизм Вы до MSSQL добираетесь.
Спрошу конкретнее - какие компонеты используются для получения данных с MSSQL? Название их классов начинается с TADO... ?
Tra (2002-02-07 19:08:00) [13]У меня приложение работает с MSSQL сервером по локалке.
А мне нужно забросить список email_ов из таблици на удаленный сервер, а там уже посписку рассылка пойдет.
kig (2002-02-07 18:59:00) [14]Доступ через что? К MSSQL?
Если через ADO, то у адошного рекордсета есть метод
GetString(...)