Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.06.2007, 13:16   #1
gribog
Новичок
Джуниор
 
Регистрация: 22.06.2007
Сообщений: 2
По умолчанию загрузка данных из тестового файла

в общем, надо сделать прогу, которая представляет из себя таблицу, допустим с полями "продукт" и "цена". порга должна уметь : указываешь ей путь к текстовому файлу в котором таблица с теми же полями, прога смотрит и если цены вдруг изменились, то она перезаписывает их у себя, если продукты добавились, то она дописывает их себе. если есть какие нибудь мысли, буду очень благодарен. пока у меня два непонятка: использовать бд или ограничиться таблице...просто записей будет около 200.000, и как загрузить текстовый файл..Спасибо)
gribog вне форума Ответить с цитированием
Старый 22.06.2007, 13:47   #2
D-mon
Форумчанин
 
Регистрация: 22.06.2007
Сообщений: 414
По умолчанию

Текстовый файл это обязательно??? Не лутше ипользовать Excel? Оттуда легче в БД загрузить данные.
"использовать бд или ограничиться таблице..." - что имеется ввуду?
Нет невыполнимых задач, всё дело времени...
D-mon вне форума Ответить с цитированием
Старый 22.06.2007, 14:27   #3
Pitbull
детский тренер
Форумчанин
 
Аватар для Pitbull
 
Регистрация: 08.06.2007
Сообщений: 532
По умолчанию

Цитата:
Сообщение от gribog Посмотреть сообщение
в общем, надо сделать прогу, которая представляет из себя таблицу, допустим с полями "продукт" и "цена". порга должна уметь : указываешь ей путь к текстовому файлу в котором таблица с теми же полями, прога смотрит и если цены вдруг изменились, то она перезаписывает их у себя, если продукты добавились, то она дописывает их себе. если есть какие нибудь мысли, буду очень благодарен. пока у меня два непонятка: использовать бд или ограничиться таблице...просто записей будет около 200.000, и как загрузить текстовый файл..Спасибо)
var
f: TStrings;
f:=TStringList.create();
f.LoadFromFile('c:\filename.txt'); //загрузка текстового файла
f.string[0]; // первая строка файла и так далее....

вот так можно считать из файла... Прилепи openDialog.fileName для указания пути к файлу.... Через цикл:
table1.edit;
table1.first;
while table1.Eof <> true do
....
table1.next;
end;

Просматриваешь все значения таблицы и сравниваешь их со строками текстового.... Потом внутри данного цикла делаешь условие, если равно , то заносишь....Ну вот как-бы идея ... А как это залепить все - думай сам....
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp
Pitbull вне форума Ответить с цитированием
Старый 22.06.2007, 14:33   #4
gribog
Новичок
Джуниор
 
Регистрация: 22.06.2007
Сообщений: 2
По умолчанию

проблема еще в том что записей порядка 200.000! какой есть способ ускорить загрузку этой базы чтобы пользователь не ждал долго?
gribog вне форума Ответить с цитированием
Старый 22.06.2007, 14:36   #5
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Цитата:
Сообщение от gribog Посмотреть сообщение
указываешь ей путь к текстовому файлу в котором таблица
Таблица??? в txt?????????????????????7 - извращение!!!

Цитата:
Сообщение от gribog Посмотреть сообщение
записей будет около 200.000, и как загрузить текстовый файл.
Как вы себе представляете процесс загрузки около 400 тыс. значений??? (2поля Х 200тыс).
На мой взгляд, пока такая прога загрузит базу, уже прийдут новые цены ))

P.S.: Не занимайтесь велосипедостроением, делайте, как говорит D-mon, через Excel.

Последний раз редактировалось Alex21; 22.06.2007 в 14:41.
Alex21 вне форума Ответить с цитированием
Старый 22.06.2007, 14:41   #6
Pitbull
детский тренер
Форумчанин
 
Аватар для Pitbull
 
Регистрация: 08.06.2007
Сообщений: 532
По умолчанию

Цитата:
Сообщение от gribog Посмотреть сообщение
проблема еще в том что записей порядка 200.000! какой есть способ ускорить загрузку этой базы чтобы пользователь не ждал долго?
У тебя сервак загнется это все обрабатывать..... Из текстовика можно мутить, если данных мало... а так - это гон....
используй OLE .....
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp
Pitbull вне форума Ответить с цитированием
Старый 22.06.2007, 14:48   #7
D-mon
Форумчанин
 
Регистрация: 22.06.2007
Сообщений: 414
По умолчанию

Запрос на перенос данных из Excel в таблицу БД

SELECT * into TMPTable
FROM OPENDATASOURCE('Microsoft.Jet.OLEDB .4.0','Data Source="путь к файлу"; Extended Properties=Excel 5.0')...[TableName$]

TMPTable - автоматом создаёт таблицу в БД куда вставляются данные с Excel.
путь к файлу - полный путь к *.xls
TableName$ - имя листа в файле Excel, $ в конце обязателен.
Нет невыполнимых задач, всё дело времени...
D-mon вне форума Ответить с цитированием
Старый 22.06.2007, 14:57   #8
Andrei
Форумчанин
 
Регистрация: 20.06.2007
Сообщений: 270
По умолчанию

Цитата:
проблема еще в том что записей порядка 200.000! какой есть способ ускорить загрузку этой базы чтобы пользователь не ждал долго?
Для справки: Базы данных обычно никогда не загружаются в память полностью потому что слишком большие по объему. Они загружают в память столько записей, сколько требуется для обработки в данный момент времени. Для того они и сделаны.

Проблема будет в загрузке текстового файла и переборе записей. Задумайся лучше о том, как извратиться и не перебирать все записи по порядку.
-Кукушка, кукушка! Накукуй мне сто лет!
-А накукуй тебе столько?

(с) Библия. Вольный перевод с древнееврейского.
Andrei вне форума Ответить с цитированием
Старый 22.06.2007, 15:13   #9
D-mon
Форумчанин
 
Регистрация: 22.06.2007
Сообщений: 414
По умолчанию

Люди... Какие текстовые файлы. Забудте про них. Это каменный век. Всё равно что пользоваться абаками када есть под рукой калькулятор. Правду говорят Alex21, Pitbull.
Нет невыполнимых задач, всё дело времени...
D-mon вне форума Ответить с цитированием
Старый 24.06.2007, 22:35   #10
Pitbull
детский тренер
Форумчанин
 
Аватар для Pitbull
 
Регистрация: 08.06.2007
Сообщений: 532
По умолчанию

Цитата:
Сообщение от D-mon Посмотреть сообщение
Запрос на перенос данных из Excel в таблицу БД

SELECT * into TMPTable
FROM OPENDATASOURCE('Microsoft.Jet.OLEDB .4.0','Data Source="путь к файлу"; Extended Properties=Excel 5.0')...[TableName$]

TMPTable - автоматом создаёт таблицу в БД куда вставляются данные с Excel.
путь к файлу - полный путь к *.xls
TableName$ - имя листа в файле Excel, $ в конце обязателен.
а я обращаюсь через указатели на стоку и столбец....Хотя это тоже самое.... создаю OLE , но я не использую запросы в данном случае... Ща времени нет написать , как я делаю, завтра напишу....
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp
Pitbull вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загрузка данных из файла JIK Помощь студентам 4 19.05.2013 12:17
кусок кода считать не из тестового файла а из Tmemo Stanislav Общие вопросы Delphi 8 07.01.2008 22:12
Загрузка данных AlexMori Общие вопросы Delphi 2 15.11.2007 08:12
Загрузка Файла Volkogriz Общие вопросы Delphi 3 31.10.2007 21:14
Загрузка файла AVer Работа с сетью в Delphi 0 11.02.2007 17:22