Базы данных на DelphiБазы данных на Delphi
#2
Отправлено 19.03.2006, 17:44:25
--------------------------------------------------------------------------------
Положите компонент TTable на форму и попробуйте указанную ниже процедуру.
procedure TForm1.CreateMyTable(NameFile: string);
begin
with Table1 do
begin
Active := False;
DatabaseName := '';
TableName := NameFile;
TableType := ttDefault;
with FieldDefs do
begin
Clear;
Add('EmpNo', ftInteger, 0, False);
Add('LastName', ftString, 20, False);
Add('FirstName', ftString, 15, False);
Add('PhoneExt', ftString, 4, False);
Add('HireDate', ftDateTime, 0, False);
Add('Salary', ftFloat, 0, False);
end;
with IndexDefs do
begin
Clear;
Add('', 'EmpNo', [ixPrimary, ixUnique]);
Add('ByName', 'LastName;FirstName', [ixCaseInsensitive]);
end;
CreateTable;
Free;
end;
end;
Посмотри может подойдет
#4
Отправлено 20.03.2006, 15:30:55
Соглашусь только при условии, что объем данных будет не большой и не потребуется потом использование анализа данных.Не стоит заморачиваться с базами данных.
Обратите внимание на типизированные/нетипизированные файлы и структуры.
Такой подход значительно ускорит работу вашей программы и повысит ее надежность.
#5
Отправлено 20.03.2006, 16:20:13
#7
Отправлено 20.03.2006, 21:30:07
структура:
type
TMyRecord = packed record
Name: String[30];
Fam: String[20];
Age: Byte;
end;
Пишем массив из 244 структур в файл...
procedure SaveMyRec;
var
MyRec: TMyRecord;
F: File of TMyRecord;
i: integer;
begin
AssignFile(f,'c:\1.tmp');
Rewrite(f);
//заполнение для примера от балды
for i:=244 Downto 0 do
begin
MyRec.Name:='Петя'+IntToStr(i);
MyRec.Fam:='Петров'+IntToStr(i);
MyRec.Age:=i;
Write(f,MyRec);
end;
CloseFile(f);
end;
И вего делов... А еще лучше хранить все это в XML.
To Sir666, даже если объем данных будет большой этот метод записи и анализа данных ни чем не хуже чем запись в локальные таблицы(в которых куча ограничений).
Вот если сравнивать с SQL серверами - тогда да.
Сообщение отредактировал ivasi: 20.03.2006, 21:56:17
#10
Отправлено 21.03.2006, 09:27:08
Именно о серверах я и говорил, и еще удобней использовать SQL для анализа, нежели чем самому писать на для использования в файлах.To Sir666, даже если объем данных будет большой этот метод записи и анализа данных ни чем не хуже чем запись в локальные таблицы(в которых куча ограничений).
Вот если сравнивать с SQL серверами - тогда да.
#11
Отправлено 21.03.2006, 18:36:42
попробуй потом реализовать быструю сортировку массива из нескольких миллиардов строк )))
Народ, хватит умных мыслей. Если есть конкретно что сказать, говорите. Мне надо имеено базы данных, а не файловые структуры. Можно с использованием sql. Дайте плиз линки на готовый пример.
#12
Отправлено 21.03.2006, 18:54:40
вопрос тиапа "Нужно создать на диске базу данных и записать этот массив в нее." мягко говоря неоднозначен.
PS... Отсортировать массив в памяти тривиально просто и достаточно быстро.
Сообщение отредактировал ivasi: 21.03.2006, 18:56:08
#14
Отправлено 21.03.2006, 23:52:37
Сообщение отредактировал Mikkiss: 22.03.2006, 00:01:12
#15
Отправлено 22.03.2006, 00:21:03
Надо было с этого начинать, что у вас миллион записей. Когда вы говорили про массив, мне (да и не только мне) казалось что речь идет максимум о 100 записях.Давай напиши код сортировки массива типа стринг допустим из 1000000 элементов. Посмотрим на быстроту
Сообщение отредактировал Madik: 22.03.2006, 00:34:43
#16
Отправлено 22.03.2006, 15:42:18
[to Mikkiss]
Сам ты lol Я конкретный пример просил а не "если тебе надо с бд то запросы тебе в помощь используй Order by имя_поля. Вот тебе сортировка" И внимательнее мои сообщения читай, я с типизированными файлами работать и не собирался.
#17
Отправлено 22.03.2006, 16:12:24
"Термин "база данных" можно применить к любой совокупности связанной информации, объединенной вместе по определенному признаку. Примерами баз данных могут служить адресная книга, картотека, словарь, энциклопедия или кафедральный журнал. При этом в качестве базы данных рассматривается только набор данных, организованных определенным образом. "
Сообщение отредактировал ivasi: 22.03.2006, 16:31:20
#19
Отправлено 22.03.2006, 20:21:35
Еще раз спасибо за ссылки с перехватом.
Может и здесь поможешь? Суть в следующем. Нужна программа для записи смс в сотовую компанию. Суть: создать базу данных, записать ее на диск. Затем при получении новой смс нужно добавить ее в базу так, чтобы все смс были упорядочены по алфавиту. Я про БД вообще ничего не знаю. Мне бы исходники хотя бы телефонной книги (именно с БД, а не с файлами).
#20
Отправлено 22.03.2006, 22:06:30
Преимущества данного подхода: 1. бесплатность MySQL, 2 гибкость, 3 Большая скорость освоения и разработки. 4. наличие специализированной быстрой библиотеки компонентов (бесплатной и качественной)для работы с MySQL из под Delphi. 4. Мультиплатформенность MySQL - может работать на Linux, причем достаточно будет перенести файл бд и изменить параметры соединения в твоей программе.
По поводу компонентов - называются они Zeos Database Objects.
скачать можно здесь:
http://sourceforge.n...?group_id=35994
Для администрирования Сервера бд(создание базы и таблиц, добавление пользователей и пр..) на мой взляд лучше всего воспользоваться программой MySQLLog - она шаровая но при желании можно не напрягаясь найти лекарство.
Сообщение отредактировал ivasi: 22.03.2006, 22:13:21
Количество пользователей, читающих эту тему: 1
пользователей: 0, неизвестных прохожих: 1, скрытых пользователей: 0