|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
21.08.2007, 17:17 | #1 |
Пользователь
Регистрация: 21.08.2007
Сообщений: 46
|
Создание индексного файла в программе
Необходимо просто проиндексировать файл при выполнении программы и показать его DBGrid
imjm:='otcet'+rmes2+'.dbf'; imjmi:='otcet'+rmes2+'.mdx'; Form24.Table1.Active:=False; Form24.Table1.TableName:=imjm; Form24.Table1.Close; If FileExists(imjmi) then DeleteFile(imjmi); AssignFile(F,imjm); Reset(F); Seek(F, 28); value:=0; Write(F,value); CloseFile(F); Form24.Table1.AddIndex('ddok','ddok ',[ixExpression]); Form24.Table1.IndexName:='ddok'; Form24.Table1.Active:=True; Посде выполнения индесн файл. судя по дате. обновляется Но в DBGrid записи не упорядочены В компонентах на форме не ставила никаких параметров, только связала Table . Source DBGrid . Очень прошу помочь |
21.08.2007, 19:50 | #2 |
Участник клуба
Регистрация: 07.07.2007
Сообщений: 1,518
|
Сейчас проверил вот этот код... работает...
Код:
Последний раз редактировалось _SERGEYX_; 21.08.2007 в 19:54. |
22.08.2007, 12:19 | #3 |
Пользователь
Регистрация: 21.08.2007
Сообщений: 46
|
Попробовала - один раз проскочило ,
, при повторном запуске выдает ошибку |
22.08.2007, 12:23 | #4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Вообще то индексы создаются раз и навсегда, и при повторном запуске их нужно уже открывать, а не создавать
I'm learning to live...
|
22.08.2007, 13:06 | #5 |
Пользователь
Регистрация: 21.08.2007
Сообщений: 46
|
Stilet, а мы с тобой из одного города Дааа мир тесен Я Делфи начала заниматься совсем недавно, поэтому вопросы могут быть и глупые Так что извините Индексный файл создается Но когда смотришь по DBgrid . показывает не индексированные записи Я уже замучилась эксперементировать Может у меня порядок активизации файлов не такой
|
22.08.2007, 13:19 | #6 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Ты тоже из крамахи? прикольно ) Можем пообщаться.
Ты саздавай Индекс один раз, потом только его открывай. Чем пользуешся, Парадоксом? P.S. Если что у меня Скайп есть, можеш туда стучать.
I'm learning to live...
|
22.08.2007, 13:21 | #7 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
О пардон у тебя DBF - Тогда точно создай индекс один раз, а он уже сам потом должен жить и работать. Только открывай его и все.
I'm learning to live...
|
22.08.2007, 13:36 | #8 |
Пользователь
Регистрация: 21.08.2007
Сообщений: 46
|
Так у меня же стоит проверка - если его нет то я создаю А так только имя подключаю Я уже самое элементарное делаю - бросаю на форму три компонента Table, Source и DbGrid В Тable указываю только имя таблицы Но индексное имя не указываю Подключаю обработку индексного файла при активизации формы и потом хочу увидеть на экране отсортированные данные Но увы - данные не упорядочены Может ты смоделруешь у себя такую ситуацию Файл dbf
|
22.08.2007, 14:05 | #9 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Наташа, я смоделировал вот такой код (Если интересно) :
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DB, DBTables, Grids, DBGrids; type TForm1 = class(TForm) DataSource1: TDataSource; DBGrid1: TDBGrid; Table1: TTable; Button1: TButton; Button2: TButton; Edit1: TEdit; Button3: TButton; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin Table1.FieldDefs.Add('q',ftString,1 0); Table1.TableName:='qw'; Table1.CreateTable; Table1.AddIndex('qind','q',[]); Table1.Exclusive:=true; Table1.Active:=true; end; procedure TForm1.FormCreate(Sender: TObject); begin Table1.DatabaseName:=ExtractFilePat h(ParamStr(0)); Table1.TableName:='qw'; Table1.Active:=true; end; procedure TForm1.Button2Click(Sender: TObject); begin Table1.IndexName:='qind'; end; procedure TForm1.Button3Click(Sender: TObject); begin Table1.Append; Table1.FieldByName('q').AsString:=i nttostr(random(1000)); end; end. У меня упорядочеваются без проблем. Ты скажи какого типа данные? И вообще какая задача в целом... может подход нужен другой, ато твой пост первый чистое хакерство 8)
I'm learning to live...
|
22.08.2007, 14:29 | #10 |
Пользователь
Регистрация: 21.08.2007
Сообщений: 46
|
Я пишу программы для бухгалтерии Там установленны были программы под Dos Теперь мне все это нужно сделать на Delphi А там для просмотра данных нужно упорядочить по дате или по N документа Вот я и хочу показать массив , созданній ранее в другом шаге программы , но только упорядочить его по дате Формат D(8) Может его нужно перевести в String Я тебе так благодарна , что хоть ты откликнулся |А то редко кто работает с Базами А ты на чем пишешь программы или ты сайтами занимаешься
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
создание файла базы | Черничный | БД в Delphi | 19 | 05.12.2008 10:26 |
Создание файла | Nowise | Паскаль, Turbo Pascal, PascalABC.NET | 7 | 04.04.2008 19:55 |
Создание файла | BigRem | Общие вопросы Delphi | 8 | 06.01.2008 16:52 |
Создание файла | Хs-You | Общие вопросы Delphi | 4 | 22.08.2007 22:04 |