![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Frikazoid |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 424 Регистрация: 29.3.2002 Репутация: 1 Всего: 2 |
Привет All!
Есть тут проблема! Мне очень нужно с базами данных поработать, а я не умею! Нужно: 1)Создание базы из приложения. 2)Создание заголовков толбцов. 3)передвижение по базе, как по столбцам, так и по ячейкам(это очень важно)! 4)сортировка. Если кто сделает хоть какой пример, то киньте мне ПЛЗ на мыло [email protected] Базы мне очень нужны! За всё спасибо! -------------------- RTFM - "Всё для программиста" Это уменя есть сайт! Урыл в профайле! А там.... Ну всё что надо по PHP Delphi CSS HTML JavaScript Perl API ASP MySQL XML С++ VBasic и многое другое. |
|||
|
||||
Vit |
|
||||||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
1) Создание базы очень зависимо от того какую базу ты используешь. Если Парадокс - то это просто создание папки, если MS Access - то я это в нашем FAQ описал, если MS SQL Server то через ADO коннектишься к базе данных "master", затем создаешь базу при помощи квери:
2) В стандартной квере по созданию таблицы:
Если менять уже существующую таблицу (добавлять/удалять столбцы) - используй SQL оператор "Alter Table" - его реализация очень сильно зависит от используемой базы данных 3) По строкам двигаемся: Query1.first;// переход на первую строку Query1.next;// переход на следующую строку Query1.prior;// переход на предыдущую строку Query1.last;//переход на последнюю строку Все операции проходят на текущей строке, которую можно назвать курсором. Обращение к ячейке на текущей строке: по номеру Query1.fields[1].asstring Query1.fields[1].asinteger Query1.fields[1].asfloat по названию поля (колонки): Query1.fieldbyname('MyStringField').asstring Query1.fieldbyname('MyIntegerField').asinteger Query1.fieldbyname('MyBooleanField').asboolean Query1.fieldbyname('MyRealField').asfloat 4) Когда пишешь кверю ты можешь указать сортировку:
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
||||||
|
|||||||
X-Vlad |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 570 Регистрация: 10.4.2002 Где: Украина, Львов Репутация: 1 Всего: 5 |
Пример для баз данных ПАРАДОКС.
Создание столбца: procedure TForm3.Button1Click(Sender: TObject); begin form1.table1.Active:=false; form1.table1.FieldDefs.Add('NAME',ftstring,10,false); form1.table1.IndexDefs.Add('','NAME',[ixPrimary]); form1.table1.CreateTable; form1.table1.Active:=true; end; для передвежения по базе есть стандартный компонент...помоему называется DBNAVIGATE. что-бы создать программно таблицу надо: with Ttable.Create(self)do begin Databasename:='тут можешь написать путь где будет хранится база (напр: c:\ ![]() begin TableName:='имя базы'; Tabletype:=ttparadox; with fielddefs do begin add('Default',ftinteger,0,true); end; indexdefs.Add('','Default',[ixprimary]); createtable; end; Я щас пишу прогу которая работает с базамы "Парадокс". она умеет создавать таблици, удалять\добавлять столбци и т.д. ...:)) если шо заходи...:) ася:117952302 мыло:тут |
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
Я бы не советовал через FieldDefs работать, очень уж он коряво реализован в Дельфях, используйте для этого квери: "create table ..." для создания таблицы, "Alter Table..." для удаления, добавления полей, ключей, индексов...
Преимущества: 1) Работает со всеми версиями парадокса и большая вероятность что будет работать и с подавляющим большинством других баз данных - от Excel до MS SQL 2) Более корректно решаются вопросы совместимости и сохранности данных, особенно при многопользовательском доступе 3) Более правильно обрабатываются механизмы изменения TSession. При низкоуровневых операциях надо делать рестарт сессии, иначе могут наступить кранты, особенно при не монопольном доступе. 4) Квери протекают по механизму транзакций, поэтому сбой в работе, например зависание или перезагрузка PC во время изменения большой таблице будут гораздо реже приводить к потере данных и порче всей таблицы. И вообще, при работах с базами данных надо все операции насколько это возможно делать высокоуровневыми - т.е. через квери, а к низкоуровневым прибегать только в случае отсутствия других путей. Я тоже страдал созданием мененджеров таблиц, и могу послать то что у меня получилось (без исходников, так как они принадлежат корпорации). Программа делает примерно следующее: - открытие, просмотр и редактирование таблиц в Paradox, FoxPro, DBase, Access, Excel, MS SQL Server (включая просмотр и редактирование мемо -полей и Blob-полей с картинками) - создание репорта по структуре - исправление порченной базы данных - копирование таблиц с содержимым или без из одной базы в другую - изменение автоинкремента парадоксовских таблиц - Alias manager (на подобии BDE Admin) - Сравнение структур таблиц в 2х alias - Запуск кверей Если заинтересовало - пошлю по email -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
Frikazoid |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 424 Регистрация: 29.3.2002 Репутация: 1 Всего: 2 |
Конечно хотим [email protected]
-------------------- RTFM - "Всё для программиста" Это уменя есть сайт! Урыл в профайле! А там.... Ну всё что надо по PHP Delphi CSS HTML JavaScript Perl API ASP MySQL XML С++ VBasic и многое другое. |
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
Послал уже
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
X-Vlad |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 570 Регистрация: 10.4.2002 Где: Украина, Львов Репутация: 1 Всего: 5 |
мне тоже кинь... [email protected]
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |