|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
17.04.2009, 09:59 | #11 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Итак знакомая попросила сделать для военкомата учет данных.
Я содрал из стандартного набора в Делфи файл biolife.db в свою папку. Перебрал все поля под мои (имя, фамилия, отчество, ВУС, год рождения, род войск и прочее, около 20 полей, почти все строковые, только порядковый номер - Integer). Добавил стандартные операции - типа стереть, добавить. Чтобы ее видеть кинул DBGrid, переход назад, вперед. Пробовал формировать статистику (типа посчитать сколько матросов, прапорщиков и прочее) - это получается. Вопрос встал при импортировании данных из Экселя (раньше учет велся там, но были постоянные проблемы - поставит матрос с пробелом или пишет матросс и он уже не считается, сейчас в выпадающем списке, ошибок должно быть меньше). Теперь импорт получается, но не могу, млин, добавлять данные. То есть допустим стер несколько записей, остались свободные номера, но мне нужно определить порядковый номер, под которым будет добавляться запись. Например, стер 50-го красноармейца. Как мне потом узнать что этот номер свободный, чтобы на него запихнуть в следующий раз другого? Сразу скажу, что порядок расположения записей, значения не имеет.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
17.04.2009, 10:17 | #12 |
Форумчанин
Регистрация: 06.09.2007
Сообщений: 908
|
я признаться и не знал о biolife.db, какая-то видимо демовская бд. Utkin, скажите для начала, вы в ФоксПро собираетесь программу разрабатывать, сколько планируется пользователей с ней работать?
|
17.04.2009, 10:23 | #13 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Первое: Если уж нужно работать с DBF лечше поставить на комп Visual FoxPro 6 или 8, появится провайдер, который можно прикрутить к проге на делфи через ADO компоненты. При этом ты легко сможеш импортировать XLS файлы, либо через само ФоксПро либо запросами через ADO. Всетки никто с DBF не работает луче чем Фокс. Второе: Могу порекомендовать тебе вот такую статейку:http://pblog.ru/?p=364. Вдруг пригодится. А то что ты сделал - чепуха. Нестабильно работать будет, и гемору много наживеш при проектировании, так что в твоем положении лучший выход: VisualFoxPro+ADO+Delphi
I'm learning to live...
|
|
17.04.2009, 13:53 | #14 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Да я практически уже закончил . Извиняюсь - посмотрел это Парадокс. Единственная проблема - это генерация уникального порядкового номера, поскольку в базе могут быть различные номера (если будут удалять из середины, а вероятность такого события очень велика, в сравнении с крайними записями).
Мне без разницы сам номер, единственное, что меня интересует, это генерация уникального номера, несуществующего в текущей базе. Имеются ли для этого какие-либо встроенные, скажем в Table, средства? Я смог импортировать данные из текстового файла, это оказалось не сложно, моя ошибка заключалась в том, что я сделал ключеывм полем фамилию, а она может повторяется, отсюда выпрыгивала ошибка. В самой Делфи она не отлавливалась, но когда я скопилировал заведомо ошибочный проект, я смог отследить участок кода (в обертке try), который являлся источником ошибки. Поддержка сети не планируется (там всего два компа, оба используются в качестве печатных машинок). В общем одно рабочее место . P.S. Там еще много учебных баз данных.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика Последний раз редактировалось Utkin; 17.04.2009 в 13:55. |
20.04.2009, 08:49 | #15 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Пробовал генерировать Integer случайным образом, все равно возникает ошибка. Очевидно необходимо добавлять по порядку...
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
20.04.2009, 10:52 | #16 |
Форумчанин
Регистрация: 06.09.2007
Сообщений: 908
|
Utkin, есть специальное автоинкрементное поле, которое автоматически считает количество записей. http://programmersforum.ru/showthread.php?t=45725
|
20.04.2009, 11:35 | #17 |
Регистрация: 28.03.2009
Сообщений: 5
|
БД жестокая вещь х_Х
Решаю задачи на программирование в Delphi.
Работаю не для денег, а для опыта, поэтому возможно бесплатно (но от небольшого гонорара не откажусь=)). ICQ - 489361746 Мыло - kingmaker93@mail.ru |
20.04.2009, 13:28 | #18 | |
Форумчанин
Регистрация: 20.06.2007
Сообщений: 270
|
Цитата:
Записи вы физически не удаляете, а обнуляете значения полей, оставляя нетронутым номер. В обычном виде вы делаете их невидимыми, а при добавлении новых данных вначале просматриваете таблицу на наличие пустых записей и, если таковые имеются - заполняете данными первую попавшуюся пустую запись. Если же пустых записей нет, то добавляете новую. Хотя, автоинкремент в Paradox, как предложил фЁдОр конечно же, вне конкуренции.
-Кукушка, кукушка! Накукуй мне сто лет!
-А накукуй тебе столько? (с) Библия. Вольный перевод с древнееврейского. |
|
20.04.2009, 15:48 | #19 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Про автоинкремент я уже догадался (стал искать альтернативу для Integer), но данные все равно не добавляются. По ходу дело в другом. Пишет ошибку в какой-то dll.
Переделал функции так, что бы добавлялись данные как из файла так и из специальной формы через одну функцию, но это не помогает. Данные через файл добавляются, вручную нет. Причем если вручную я заполняю все поля сам ручками, все вносится нормально. Если только фамилию (остальное автоподстановка - строка 'Нет данных', самое маленькое поле 15 символов, самое большое - 60), то выскакивает ошибка. Начинаю отслеживать через breakPoint и ошибка вываливается, даже если ничего не происходит, просто нахожусь в точке останова. Это может быть связано с базами данных или причинам в другом?
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
21.04.2009, 18:33 | #20 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Всем спасибо, решил проблему, тем что пересоздал проект и перенес старое содержимое туда. Все заработало . Причины такого поведения найти не могу.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ошибка выполнения sql запроса при изменении данных | XATAB | БД в Delphi | 4 | 28.02.2009 15:44 |
Ошибка при приёме данных ServerSocket'ом | Terran | Работа с сетью в Delphi | 2 | 25.01.2009 12:20 |
ADO. Запрос на добавление. Ошибка. | Son | БД в Delphi | 13 | 09.01.2009 20:15 |
Добавление данных | OLEGSENT | БД в Delphi | 3 | 17.06.2008 23:47 |
Как импортировать поля с Одного TTable в другой TTable | Alex_7_4_1 | БД в Delphi | 3 | 09.05.2008 18:12 |