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

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

Как результат запроса сохранить в 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(...)


Наверх

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