| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Базы.... |
| Автор: X-Vlad 30.5.2002, 10:48 |
| Прога работает с базами "Парадокс" открываю таблицу в ней куча полей со значениями.....когда добавляю новый столбец все поля удаляются почему так как зделать что-бы етого не было? у меня есть идейка: делать резервную копию (придобавлении столбца делать "темп" файл записывать туда все значения, а после добавления\удаления столбца все значения переписывать назад....но ето будет большая нагрузка на систему... что можно зделать? помогите плз.... если можно напишите код.. зарание благодарен. |
| Автор: Vit 30.5.2002, 14:07 |
| Пришли пожалуйста твой код, что-то непонятно что ты делаешь... |
| Автор: X-Vlad 30.5.2002, 15:49 |
| а куда слать я открывая в проге базу таблицу "counter.db" которая находится в: c:\program files\common files\borland shared\DBE\ там много разных столбцов и полей(заполненых) когда я добавляю столбец то все поля очищяются....почему так? давай мыло... |
| Автор: Vit 30.5.2002, 16:23 |
| Ты мне код пришли как именно ты добавляешь? Я знаю по крайней мере 6 совершенно различных способов дробавить поля: 1) Через BDE кверю 2) Через BDE DBI API 3) Через DAO кверю 4) Через DAO API 5) Через ODBC кверю 6) Напрямую работая с файлом Скорее всего можно и через ADO только я пока не знаю как. Да и квери можно по разному сделать, поэтому я и прошу тебя бросить мне твой дельфийский код в котором ты делаешь изменение структуры таблицы, если ты это делаешь через кверю то в дополнение к дельфовскому коду напиши текст своей квери. |
| Автор: Vit 30.5.2002, 18:47 | ||
Еще раз, пиши пожалуйста в форум а не мне на email, ничего в твоем коде секретного нет. Ага, ты это сделал 7м способом, который я забыл упомянуть - я его знаю, но вследствие плохой его реализации в VCL не использую... Однако отвечу - попробуй просто над таблицей выполни кверю примерно следующего вида:
и все будет путем. А ты похоже просто пересоздаешь таблицу заново... |
| Автор: Vit 30.5.2002, 18:50 |
| Чуть не забыл, возможно что перед запуском такой квери тебе прийдется открыть таблицу в эксклюзивном режиме, хотя и не уверен. |
| Автор: X-Vlad 31.5.2002, 12:29 |
| Vit. Извини за то что прислал тебе на мыло... я просто непонял тебя....:) есклюзивно открывать ето: table1.exclusive:=true; ? а потом что писать? ты мне можешь тут код написать....,а то умя сесия начинается нету времени пробовать ето все ещё й в Одессу еду на выставку....напиши мне плз код.... Спасибо |
| Автор: Vit 31.5.2002, 15:19 |
| Допустим тебе надо добавить поле. Ставишь на форму компонент TQuery - настраиваешь Alias на нужную базу данных. На свойстве SQL щелкаешь и вводишь текст запроса: ALTER TABLE MyTable ADD MyNewField CHAR(25) Естественно подставляя нужное название таблицы, название и тип поля. В тексте пишешь Query1.ExecSQL; |
| Автор: X-Vlad 31.5.2002, 16:59 |
| Vit чёто у меня не получается ...:( я незнаю в чем проблема.... |
| Автор: Vit 31.5.2002, 17:04 |
| Что именно не получается? Ошибки генерятся, сообщения или что? Нет такого понятия не получается, есть: 1) Генерится ошибка при компилляции. Какая? 2) генерится ошибка при выполнении. Какая? 3) Никаких ошибок, но код не делает того что нужно. 4) Немогу даже написать код, потому что незнаю как. Так какой вариант у тебя? |
| Автор: X-Vlad 1.6.2002, 16:08 |
| Vit генерится ошибка при попытке добавить столбец. |
| Автор: Vit 1.6.2002, 16:15 |
| Ну и? Что я из тебя по капле вытягиваю инфу? Какая ошибка вознивает? На каком месте(на какой строке)? Текст ошибки можешь привести? Там же может быть все что угодно от нехватки места на диске до заблокированного файла для записи, я тут кажись где-то приводил список всех ошибок BDE - там их несколько сот, если не тысяч, и ни я, ни ты не хотим, я надеюсь, чтобы я рассмотрел каждую возможную ошибку и объяснил что делать, я ж так писать ответ пол года буду. |
| Автор: X-Vlad 4.6.2002, 16:51 |
| привет Вит. давай я тебе исходники на мыло кину ты посмотришь.... хорошо? если да то дай своё мыло.... |
| Автор: Vit 4.6.2002, 17:10 |
| Бросай на nevzorov@yahoo.com, только таблицу тоже брось |
| Автор: Vit 5.6.2002, 16:01 | ||
| Посмотрел твой код. Чтобы добавить стольбец надо : 1) Поставить на форму и подключить к той же базе данных TQuery 2) Написать следующий код:
3) Этот код будет работать только в монопольном режиме, т.е. если больше никто эту таблицу не открывает, например в самом Дельфи в дизайне эта таблица не открыта. Если у тебя генерится какая ошибка - скажи что за ошибка. |
| Автор: X-Vlad 9.6.2002, 08:53 |
| ошибку не генирит но и несоздаёт столбец.....:(( |
| Автор: Vit 9.6.2002, 21:57 |
| Хорошо, дай мне свой email я тебе простой пример накатаю и брошу в архиве целиком. |