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

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

Программно ввести данные ТХТ в базу данных [D7]


Страницы:   1 2

Aleks ©   (2009-12-17 15:50:00) 

Доброго времяни суток, Мастера подскажите, как, и как это правильно сделать.
Есть Данные, они в текстовом файле, стороняя программа пищет лог, мне необходимо занести, и переодически добавлять этот лог в базу данных. Разобрать строку я могу, но как их ввести, сохранить, проверить на совпадения не знаю. Может компонент есть какой? В базах я 0, прощу не пиннать, покрайней мере сильно.


Aleks   (2009-12-19 08:01:00) [1]

всем спасибо. Тема закрыта


Германн   (2009-12-19 01:37:00) [2]


> Aleks   (18.12.09 22:41) [30]
>
> Вот что у меня получилось.
> Правильно или нет но работает, правда медленно.


> sniknik ©   (18.12.09 21:22) [25]
>
> > как и как правильно
> и тебе уже в который раз повторяют "insert into ... select
> ... from ... ", это гораздо правильнее (если есть возможность)
> чем по записьное добавление... раз в тыщу быстрее.
>

Ещё раз. Найди хоть самую дешевую книжку по SQL, если встроенный в Дельфи аглицкий хелп (LocalSQL.hlp) читать не хочешь.


Aleks   (2009-12-18 22:41:00) [3]

Вот что у меня получилось.
Правильно или нет но работает, правда медленно.
Может кто, что подскажет.

Имя  год      Обл  гор   ул    №дом   №кв    №Этаж

Text:Integer:Text:Text:Text:Text:Text:Integer:

procedure TForm1.Button1Click(Sender: TObject);
Var
i,p,p1,i1,i2:Integer;
S:String;
begin
Memo1.Lines.LoadFromFile('c:\Text.txt');
For i:=0 to  Memo1.Lines.Count-1 Do
 If '*'<>Memo1.Lines.Strings[i] Then
   Begin
     Table1.Insert;
      p:=Pos(':',Memo1.Lines.Strings[i]);
     Table1.Fields[0].Text:=Copy(Memo1.Lines.Strings[i],0,p-1);
     p1:= PosEx(':',Memo1.Lines.Strings[i],p+1);
     Table1.Fields[1].Value :=StrToInt(Copy(Memo1.Lines.Strings[i],p+1,p1
(p+1)));
        For i1:=2 To 6 Do
          Begin
             P:=p1;
             p1:= PosEx(':',Memo1.Lines.Strings[i],p+1);
             Table1.Fields[i1].Text:=Copy(Memo1.Lines.Strings[i],p+1,p1-(p+1));
         End;
    Table1.Post;
 End;
end;


Anatoly Podgoretsky   (2009-12-18 22:26:00) [4]

Ну а если не можешь, тогда делай парсинг текстового файла и записывай полученые данные в базу.


Anatoly Podgoretsky   (2009-12-18 22:25:00) [5]


> Aleks   (18.12.09 21:12) [24]

Тебе надо АДО и провайдер JET - ISAM драйвер TextFiles
Вот к нему и можно делать запросы.


Anatoly Podgoretsky   (2009-12-18 22:21:00) [6]


> Aleks   (18.12.09 16:47) [20]

Это не подходит, это пример построения пользовательского набора данных, к тому же ты привел какую то гадость, а не точный код. Не видать TTextDataset


Aleks   (2009-12-18 21:28:00) [7]

ну так напишите пример, а то "insert into ... select ... from ... "
не понимаю я как этим пользоваться, с базами не работал ни когда.


sniknik   (2009-12-18 21:22:00) [8]

> как и как правильно
и тебе уже в который раз повторяют "insert into ... select ... from ... ", это гораздо правильнее (если есть возможность) чем по записьное добавление... раз в тыщу быстрее.


Aleks   (2009-12-18 21:12:00) [9]

Мастера я просил вас подсказать мне, как и как правильно, занести данные которые хронятся в текстовом файле в базу данных. Спасибо за дискусию.
Правда мне пару строк кода нужно было.
Table1.Insert; --Добавить новую запись
Table1.Edit;   --- Редактировать существующую

Table1.FieldAddress('Имя1');

Table1.Fields[1].Value:=MaskEdit1.Text;       цифры

//   ИЛИ

//Table1.FieldByName('Имя').AsString :=MaskEdit1.Text;   текст

Table1.Post;


sniknik   (2009-12-18 21:07:00) [10]

пример вовсе не в том коде что ты привет, а в
> ... See TextData.Pas for more info...


Aleks   (2009-12-18 21:02:00) [11]


> sniknik ©  

C:\Program Files\Borland\ Delphi7\Demos\Db\TextDataесть пример
Может в этом вся разница, у меня так :

unit TextMain;

{ This project demonstrates a custom TDataSet implementation.
 See TextData.Pas for more info.  You will need to compile and
 install TextPKG.DPK before using this sample. }

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 TextData, ExtCtrls, DBCtrls, Grids, DBGrids, Db;

type
 TTextDataDemoForm = class(TForm)
   DataSource1: TDataSource;
   DBGrid1: TDBGrid;
   DBNavigator1: TDBNavigator;
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 TextDataDemoForm: TTextDataDemoForm;

implementation

{$R *.dfm}

end.


sniknik   (2009-12-18 20:41:00) [12]

> и ни строчки кода.
ни фига ж себе, ни строчки... 461 строка, пример компонента наследника TDataSet написан для текста (простенький, но все же).
не то, что с запросом конечно... но почему бы и нет? можно и так сделать, типа "ход конем" - учимся писать компоненты для изучения работы базой. ага.


Aleks   (2009-12-18 16:47:00) [13]


> C:\Program Files\Borland\Delphi6\Demos\Db\TextDataесть пример.
>  Я правда его не особо смотрел про что он, но по названию
> вроде похоже.

к сожалению там просто BD с навигатором, из раздела, как связать bd с таблицей, и ни строчки кода.


Sergey13   (2009-12-18 16:37:00) [14]

> [18] Aleks   (18.12.09 16:23)

В
C:\Program Files\Borland\Delphi6\Demos\Db\TextData
есть пример. Я правда его не особо смотрел про что он, но по названию вроде похоже.


Aleks   (2009-12-18 16:23:00) [15]


> Книжку почитай.

Была бы толковая книга, я б почитал. Делаю по эл.книге, а там только создание базы и  выборка из неё данных. Ввод данных с клавиатуры, создание или удаление записи, с помощью  навигатора.


Anatoly Podgoretsky   (2009-12-18 15:37:00) [16]

> Aleks  (18.12.2009 15:23:15)  [15]

Вместо троеточий подставь свои данные, подробности все равно в справке.


Германн   (2009-12-18 15:26:00) [17]


> не чего не понял ...  как этим
> пользоваться?

Книжку почитай.


Aleks   (2009-12-18 15:23:00) [18]

не чего не понял, INSERT INTO ... SELECT FROM ...  как этим пользоваться?
пример можно.


sniknik   (2009-12-18 13:26:00) [19]

> один цикл с описанием
цикл не нужен, достаточно одной таблет... команды, и тебе ее привели, а описание есть в хелпе.

> Хм, я, когда первый раз с чем-то, описание читаю обычно.
а я ему еще и следую... ;) пока не понимаю процесса обычно буквально.


Плохиш   (2009-12-18 12:17:00) [20]


> Ну не понимаю я, первый раз с BD, спасибо.

Хм, я, когда первый раз с чем-то, описание читаю обычно.


Страницы:   1 2

Наверх

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