Перейти к содержимому

Фотография

Базы данных на DelphiБазы данных на Delphi


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 32

#1
Br@iN

Br@iN
  • Завсегдатай
  • 149 сообщений
Народ, проблема в следующем. Имеется массив с определенными данными. Нужно создать на диске базу данных и записать этот массив в нее. Если у кого есть, скиньте готовый пример или ссылку.
  • 0

#2
Mikkiss

Mikkiss
  • Гость
  • 32 сообщений
Как создать таблицу базы данных, не используя Database Desktop
--------------------------------------------------------------------------------


Положите компонент 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;


Посмотри может подойдет
  • 0

#3
ivasi

ivasi
  • Постоялец
  • 366 сообщений
Не стоит заморачиваться с базами данных.
Обратите внимание на типизированные/нетипизированные файлы и структуры.
Такой подход значительно ускорит работу вашей программы и повысит ее надежность.
  • 0

#4
Sir666

Sir666
  • В доску свой
  • 2 367 сообщений

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

Соглашусь только при условии, что объем данных будет не большой и не потребуется потом использование анализа данных.
  • 0

#5
ivasi

ivasi
  • Постоялец
  • 366 сообщений
Ссылки по теме:
http://www.delphikin...p?catalogid=843
http://www.delphikin...?catalogid=1184
  • 0

#6
Br@iN

Br@iN
  • Завсегдатай
  • 149 сообщений
To IVASI
Оригинальный подход ))) Самому базы данных обрабатывать )))

To Mikkiss
Спасибо, то что надо
  • 0

#7
ivasi

ivasi
  • Постоялец
  • 366 сообщений
Жаль что за подробностью изложения вы не рассмотрели простоты реализации...


структура:

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

  • 0

#8
Mikkiss

Mikkiss
  • Гость
  • 32 сообщений
У меня еще пару вариантов есть
  • 0

#9
Madik

Madik
  • Частый гость
  • 56 сообщений

А еще лучше хранить все это в XML.

А еще легче в cds

Сообщение отредактировал Madik: 21.03.2006, 01:50:07

  • 0

#10
Sir666

Sir666
  • В доску свой
  • 2 367 сообщений

To Sir666, даже если объем данных будет большой этот метод записи и анализа данных ни чем не хуже чем запись в локальные таблицы(в которых куча ограничений).
Вот если сравнивать с SQL серверами - тогда да.

Именно о серверах я и говорил, и еще удобней использовать SQL для анализа, нежели чем самому писать на для использования в файлах. :smoke:
  • 0

#11
Br@iN

Br@iN
  • Завсегдатай
  • 149 сообщений
[to ivasi]
попробуй потом реализовать быструю сортировку массива из нескольких миллиардов строк )))

Народ, хватит умных мыслей. Если есть конкретно что сказать, говорите. Мне надо имеено базы данных, а не файловые структуры. Можно с использованием sql. Дайте плиз линки на готовый пример.
  • 0

#12
ivasi

ivasi
  • Постоялец
  • 366 сообщений
Br@iN, тебе стоит более формализовано задавать вопросы.
вопрос тиапа "Нужно создать на диске базу данных и записать этот массив в нее." мягко говоря неоднозначен.

PS... Отсортировать массив в памяти тривиально просто и достаточно быстро.

Сообщение отредактировал ivasi: 21.03.2006, 18:56:08

  • 0

#13
Br@iN

Br@iN
  • Завсегдатай
  • 149 сообщений
[to ivasi]
Ты вообще когда нибудь программировал????

Давай напиши код сортировки массива типа стринг допустим из 1000000 элементов. Посмотрим на быстроту
  • 0

#14
Mikkiss

Mikkiss
  • Гость
  • 32 сообщений
Товарищь Br@iN ! ты разрабатываешь единую базу данных Казахстана ???! lol ! массив из миллиона элементов, если тебе надо с бд то запросы тебе в помощь используй Order by имя_поля. Вот тебе сортировка.А если ты уж собрался миллион записей вбивать в типизированный файл, то извини :-)

Сообщение отредактировал Mikkiss: 22.03.2006, 00:01:12

  • 0

#15
Madik

Madik
  • Частый гость
  • 56 сообщений

Давай напиши код сортировки массива типа стринг допустим из 1000000 элементов. Посмотрим на быстроту

Надо было с этого начинать, что у вас миллион записей. Когда вы говорили про массив, мне (да и не только мне) казалось что речь идет максимум о 100 записях.

Сообщение отредактировал Madik: 22.03.2006, 00:34:43

  • 0

#16
Br@iN

Br@iN
  • Завсегдатай
  • 149 сообщений
Нда... Какие все умные. Все понятно, на этом форуме вы просто сообщения себе нарабатываете. Админ, закрывай тему. А то еще про погоду начнут разговаривать.

[to Mikkiss]
Сам ты lol Я конкретный пример просил а не "если тебе надо с бд то запросы тебе в помощь используй Order by имя_поля. Вот тебе сортировка" И внимательнее мои сообщения читай, я с типизированными файлами работать и не собирался.
  • 0

#17
ivasi

ivasi
  • Постоялец
  • 366 сообщений
для особо одаренных...

"Термин "база данных" можно применить к любой совокупности связанной информации, объединенной вместе по определенному признаку. Примерами баз данных могут служить адресная книга, картотека, словарь, энциклопедия или кафедральный журнал. При этом в качестве базы данных рассматривается только набор данных, организованных определенным образом. "

Сообщение отредактировал ivasi: 22.03.2006, 16:31:20

  • 0

#18
Mikkiss

Mikkiss
  • Гость
  • 32 сообщений
2 Br@iN а че ты тогда речь ведешь о String массивах с миллионами записей ?
  • 0

#19
Br@iN

Br@iN
  • Завсегдатай
  • 149 сообщений
[to ivasi]
Еще раз спасибо за ссылки с перехватом.

Может и здесь поможешь? Суть в следующем. Нужна программа для записи смс в сотовую компанию. Суть: создать базу данных, записать ее на диск. Затем при получении новой смс нужно добавить ее в базу так, чтобы все смс были упорядочены по алфавиту. Я про БД вообще ничего не знаю. Мне бы исходники хотя бы телефонной книги (именно с БД, а не с файлами).
  • 0

#20
ivasi

ivasi
  • Постоялец
  • 366 сообщений
Br@iN, Самый простой и удобный вариант(с моей точки зрения) для подобной задачи - это поставить MySQL сервер. Затем написать приложение, которое будет принимать сообщения(через GUI или по другому ) и записывать их(сообщения) на сервер. В дальнейшем можно будет посредством SQL запросов выводить данные куда угодно. При этом сортировать их можно будет вдоль и поперек. А что самое главное так это хорошая возможность анализа(гибкий поиск и пр..)
Преимущества данного подхода: 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

  • 0


Количество пользователей, читающих эту тему: 1

пользователей: 0, неизвестных прохожих: 1, скрытых пользователей: 0

Размещение рекламы на сайте     Предложения о сотрудничестве     Служба поддержки пользователей

© 2011-2022 vse.kz. При любом использовании материалов Форума ссылка на vse.kz обязательна.