Форум: "Начинающим";
Текущий архив: 2010.02.21;
Скачать: [xml.tar.bz2];
ВнизПрограммно ввести данные ТХТ в базу данных Найти похожие ветки
← →
Aleks (2009-12-17 15:50) [0]Доброго времяни суток, Мастера подскажите, как, и как это правильно сделать.
Есть Данные, они в текстовом файле, стороняя программа пищет лог, мне необходимо занести, и переодически добавлять этот лог в базу данных. Разобрать строку я могу, но как их ввести, сохранить, проверить на совпадения не знаю. Может компонент есть какой? В базах я 0, прощу не пиннать, покрайней мере сильно.
← →
clickmaker © (2009-12-17 15:54) [1]> мне необходимо занести, и переодически добавлять этот лог
> в базу данных
а чем вызвана столь суровая необходимость?
наличием уже готовой базы и приказом шефа?
← →
Aleks (2009-12-17 16:04) [2]Да, база уже готова. В логе много нужной информации, но просматривать её в блокноте очень не удобно, а выбрать из неё (примерно 10 000 записей, и их всё больше), что то нужное не реально. Вот и решил всё это в БД занести.
Шефа у меня нет, просто хобби такое.
← →
clickmaker © (2009-12-17 16:12) [3]> Да, база уже готова
на чем?
← →
Anatoly Podgoretsky © (2009-12-17 16:16) [4]> Aleks (17.12.2009 15:50:00) [0]
Надо сделать постановку и выявить уникальность в данных. Кроме того 10 000 записей это вообще не объем, можно даже все удалять и поновому заливать в БД
← →
Jeer © (2009-12-17 17:16) [5]
> Шефа у меня нет, просто хобби такое.
Тогда ручками, ножками, попой, мозгом..
Глядишь все и образуется :)
Для начала расскажи о логе ( что в нем ). Народ тут добрый , отзывчивый.
Быстро найдут нужную "кампаненту".
← →
Aleks (2009-12-17 18:08) [6]
> Для начала расскажи о логе ( что в нем ). Народ тут добрый
> , отзывчивый.Быстро найдут нужную "кампаненту".
Вот примерный текст лога:
Имя год Обл гор ул №дом №кв №Этаж
Text:Integer:Text:Text:Text:Integer:Integer:Integer:
> на чем?
создавал так :BDE Admin.-- Стандартная, потом через Датабазу что в Delphi встроенная, Парадокс. По книге создавал.
А на чём она ....... не знаю, извините.
← →
Aleks (2009-12-17 18:10) [7]
> Надо сделать постановку и выявить уникальность в данных.
> Кроме того 10 000 записей это вообще не объем, можно даже
> все удалять и поновому заливать в БД
База у меня пустая. Мне и нужно как то залить в неё данные из лог файла.
← →
Anatoly Podgoretsky © (2009-12-17 19:12) [8]> Aleks (17.12.2009 18:08:06) [6]
Дом и квартира не являются Integer, тип должен быть текстовый.
Уникальных полей у тебя нет, только вся совокупность записи.
БДЕ поддерживает текстовые базы (TextFiles), по крайней мере для чтения.
← →
Aleks (2009-12-17 23:17) [9]
> Дом и квартира не являются Integer, тип должен быть текстовый.
> Уникальных полей у тебя нет, только вся совокупность записи.
> БДЕ поддерживает текстовые базы (TextFiles), по крайней
> мере для чтения.
Это был примерный лог, если стоит Integer то цифры мне и нужны.
Если уникальные поля это те где звёздачка стоит, что при создании базы ставилась, то они подчти все такие.
Можт всё таки кто нибудь подскажет, как залить в ВД данные из лог файла.
← →
sniknik © (2009-12-18 07:47) [10]> Это был примерный лог
ну, ты и получил примерный ответ, делай его преобразование с учетом того, что ты замолчал и "телепатограммой" того чего АП из-за этого не понял/понял не так как "ты имел ввиду там есть" и получишь точный.
> Если уникальные поля это те где звёздачка стоит
а где "звёздачка" стоит в логе?
> Можт всё таки кто нибудь подскажет, как залить в ВД данные из лог файла.
да без проблем. заливай запросом (insert into), или открывай свой txt как таблицу и заливай позаписьно.
← →
Anatoly Podgoretsky © (2009-12-18 08:55) [11]
> Это был примерный лог, если стоит Integer то цифры мне и
> нужны.
> Если уникальные поля это те где звёздачка стоит, что при
> создании базы ставилась, то они подчти все такие.
> Можт всё таки кто нибудь подскажет, как залить в ВД данные
> из лог файла.
Теперь еще раз и по русски и точно, а не примерно, если конечно ответа было недостаточно. Особенно про уникальные поля.
Насчет номера дома и цифр, чтоже ты будешь делать когда встретится дом 10а или квартира 10/2
По поводу как залить, тебе был дан ответ - с помощью провайдера/драйвера "TextFiles", а команда простая обычнаяINSERT INTO ... SELECT FROM ...
← →
Aleks (2009-12-18 12:13) [12]
> Теперь еще раз и по русски и точно, а не примерно, если
> конечно ответа было недостаточно. Особенно про уникальные
> поля.
Извини, что такое уникальные поля, как они создаются, и как определить уникальное это имя или нет.
> По поводу как залить, тебе был дан ответ - с помощью провайдера/драйвера
> "TextFiles", а команда простая обычная INSERT INTO ... SELECT
> FROM ...
можно по подробней, один цикл с описанием, открыть, что откуда, куда переслать ,сохранить.
Ну не понимаю я, первый раз с BD, спасибо.
← →
Плохиш © (2009-12-18 12:17) [13]
> Ну не понимаю я, первый раз с BD, спасибо.
Хм, я, когда первый раз с чем-то, описание читаю обычно.
← →
sniknik © (2009-12-18 13:26) [14]> один цикл с описанием
цикл не нужен, достаточно одной таблет... команды, и тебе ее привели, а описание есть в хелпе.
> Хм, я, когда первый раз с чем-то, описание читаю обычно.
а я ему еще и следую... ;) пока не понимаю процесса обычно буквально.
← →
Aleks (2009-12-18 15:23) [15]не чего не понял, INSERT INTO ... SELECT FROM ... как этим пользоваться?
пример можно.
← →
Германн © (2009-12-18 15:26) [16]
> не чего не понял ... как этим
> пользоваться?
Книжку почитай.
← →
Anatoly Podgoretsky © (2009-12-18 15:37) [17]> Aleks (18.12.2009 15:23:15) [15]
Вместо троеточий подставь свои данные, подробности все равно в справке.
← →
Aleks (2009-12-18 16:23) [18]
> Книжку почитай.
Была бы толковая книга, я б почитал. Делаю по эл.книге, а там только создание базы и выборка из неё данных. Ввод данных с клавиатуры, создание или удаление записи, с помощью навигатора.
← →
Sergey13 © (2009-12-18 16:37) [19]> [18] Aleks (18.12.09 16:23)
В
C:\Program Files\Borland\Delphi6\Demos\Db\TextData
есть пример. Я правда его не особо смотрел про что он, но по названию вроде похоже.
← →
Aleks (2009-12-18 16:47) [20]
> C:\Program Files\Borland\Delphi6\Demos\Db\TextDataесть пример.
> Я правда его не особо смотрел про что он, но по названию
> вроде похоже.
к сожалению там просто BD с навигатором, из раздела, как связать bd с таблицей, и ни строчки кода.
← →
sniknik © (2009-12-18 20:41) [21]> и ни строчки кода.
ни фига ж себе, ни строчки... 461 строка, пример компонента наследника TDataSet написан для текста (простенький, но все же).
не то, что с запросом конечно... но почему бы и нет? можно и так сделать, типа "ход конем" - учимся писать компоненты для изучения работы базой. ага.
← →
Aleks (2009-12-18 21:02) [22]
> 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 21:07) [23]пример вовсе не в том коде что ты привет, а в
> ... See TextData.Pas for more info ...
← →
Aleks (2009-12-18 21:12) [24]Мастера я просил вас подсказать мне, как и как правильно, занести данные которые хронятся в текстовом файле в базу данных. Спасибо за дискусию.
Правда мне пару строк кода нужно было.
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:22) [25]> как и как правильно
и тебе уже в который раз повторяют "insert into ... select ... from ... ", это гораздо правильнее (если есть возможность) чем по записьное добавление... раз в тыщу быстрее.
← →
Aleks (2009-12-18 21:28) [26]ну так напишите пример, а то "insert into ... select ... from ... "
не понимаю я как этим пользоваться, с базами не работал ни когда.
← →
Anatoly Podgoretsky © (2009-12-18 22:21) [27]
> Aleks (18.12.09 16:47) [20]
Это не подходит, это пример построения пользовательского набора данных, к тому же ты привел какую то гадость, а не точный код. Не видать TTextDataset
← →
Anatoly Podgoretsky © (2009-12-18 22:25) [28]
> Aleks (18.12.09 21:12) [24]
Тебе надо АДО и провайдер JET - ISAM драйвер TextFiles
Вот к нему и можно делать запросы.
← →
Anatoly Podgoretsky © (2009-12-18 22:26) [29]Ну а если не можешь, тогда делай парсинг текстового файла и записывай полученые данные в базу.
← →
Aleks (2009-12-18 22:41) [30]Вот что у меня получилось.
Правильно или нет но работает, правда медленно.
Может кто, что подскажет.
Имя год Обл гор ул №дом №кв №Этаж
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;
← →
Германн © (2009-12-19 01:37) [31]
> Aleks (18.12.09 22:41) [30]
>
> Вот что у меня получилось.
> Правильно или нет но работает, правда медленно.
> sniknik © (18.12.09 21:22) [25]
>
> > как и как правильно
> и тебе уже в который раз повторяют "insert into ... select
> ... from ... ", это гораздо правильнее (если есть возможность)
> чем по записьное добавление... раз в тыщу быстрее.
>
Ещё раз. Найди хоть самую дешевую книжку по SQL, если встроенный в Дельфи аглицкий хелп (LocalSQL.hlp) читать не хочешь.
← →
Aleks (2009-12-19 08:01) [32]всем спасибо. Тема закрыта
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.02.21;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.005 c