Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.03.2007, 07:08   #1
Алёна
Форумчанин
 
Аватар для Алёна
 
Регистрация: 11.03.2007
Сообщений: 149
Восклицание уже второй день парюсь!

у меня есть таблица dbf, мне надо заменить в ней один столбец с одними значениями на другие. как это лучше сделать через делфи или как? (например если есть столбец и там одни значения "Питер", а надо "Санкт-Петербург" ) заранее спасибо
Если это глупо, но работает, значит это не глупо.

Последний раз редактировалось Алёна; 14.03.2007 в 07:21.
Алёна вне форума Ответить с цитированием
Старый 14.03.2007, 09:14   #2
Баламут
Баламучу слегка...
Участник клуба
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Сообщений: 1,585
По умолчанию

Можно конечно и в Делфи... Но если задача одноразовая, то лучше с этим не париться, а открыть табличку в старом добром Excel и быстронько сделать через Найти и заменить...
Баламут вне форума Ответить с цитированием
Старый 14.03.2007, 10:06   #3
Алёна
Форумчанин
 
Аватар для Алёна
 
Регистрация: 11.03.2007
Сообщений: 149
Восклицание

как раз таки не одноразовая, надо вот это и автоматизировать: найти и заменить, не подскажите как?
Если это глупо, но работает, значит это не глупо.
Алёна вне форума Ответить с цитированием
Старый 14.03.2007, 13:40   #4
Баламут
Баламучу слегка...
Участник клуба
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Сообщений: 1,585
По умолчанию

В общем нет под рукой нормальной DBF-ки, так что попробуем без проверки... Кликаем 2 раза по ADOConnection1 и выбираем поставщика данных Microsoft OLE DB Provider for ODBC Drivers. Дальше выбираем пункт Использовать строку подключения -> Сборка. Выбираем вкладку Источник данных компьютера ->Файлы dBase. Жмем Ок и указываем каталог с нашей dbf-кой. Ну а дальше как обычно... ADOQuery1, DataSource1... В общем самому интересно! Скажешь о результатах?
Баламут вне форума Ответить с цитированием
Старый 15.03.2007, 07:30   #5
Алёна
Форумчанин
 
Аватар для Алёна
 
Регистрация: 11.03.2007
Сообщений: 149
Восклицание

спасибо конечно Баламут, но как подключиться к базе я знаЮ, вот с кодом проблемы, не знаю как менять значения программно
Если это глупо, но работает, значит это не глупо.
Алёна вне форума Ответить с цитированием
Старый 15.03.2007, 07:48   #6
Баламут
Баламучу слегка...
Участник клуба
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Сообщений: 1,585
По умолчанию

Код:
for i := 1 to ADOQuery1.RecordCount do
begin
ADOQuery1.RecNo := i;
if ADOQuery1.FieldValues['Town'] = 'СПб' then ADOQuery1.FieldValues['Town'] := 'Москва';
ADOQuery1.Post;
end;
Баламут вне форума Ответить с цитированием
Старый 15.03.2007, 09:43   #7
Алёна
Форумчанин
 
Аватар для Алёна
 
Регистрация: 11.03.2007
Сообщений: 149
Восклицание до сих пор мучаюсь

у меня с ADO не получается, делаю через обычный TAble и edit, код пишу такой:

begin
Table1.Active:=False;
if edit1.Text='Astana' then
begin
Table1.Edit;
for i:=1 to Table1.RecordCount do
Table1['gorod']:=Edit1.Text;
... тут что то должно быть?
end;
Table1.Post;
Table1.Active:=true;
end;
ошибка вылетает
"
Table1:Cannot perform this operation on a closed dataset"
Если это глупо, но работает, значит это не глупо.
Алёна вне форума Ответить с цитированием
Старый 15.03.2007, 09:54   #8
Алёна
Форумчанин
 
Аватар для Алёна
 
Регистрация: 11.03.2007
Сообщений: 149
Восклицание до сих пор мучаюсь

через обычный Table пробую, а то ADO не работает, код пишу такой:

Table1.Active:=False;
if edit1.Text='Astana' then
begin
Table1.Edit;
for i:=1 to Table1.RecordCount do
Table1['gorod']:=Edit1.Text;
... тут еще че то надо?
end;
Table1.Post;
Table1.Active:=true;
end;
вылетает ошибка
"
Table1:Cannot perform this operation on a closed dataset"
Если это глупо, но работает, значит это не глупо.
Алёна вне форума Ответить с цитированием
Старый 15.03.2007, 14:11   #9
Баламут
Баламучу слегка...
Участник клуба
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Сообщений: 1,585
По умолчанию

Ну добавь перед циклом Table1.open, Table1.Edit. Если не получится, то вставь эти стрки в цикл!
Баламут вне форума Ответить с цитированием
Старый 16.03.2007, 08:22   #10
Алёна
Форумчанин
 
Аватар для Алёна
 
Регистрация: 11.03.2007
Сообщений: 149
Сообщение

спасибо все получилось
Если это глупо, но работает, значит это не глупо.
Алёна вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
День сисадмина Fainder Свободное общение 19 31.07.2015 13:31
День рождения Alex21 merax Свободное общение 16 22.07.2008 15:37
Голосование Второй тур! zetrix Свободное общение 7 24.11.2007 08:40
День Госфлага KORT Свободное общение 0 22.08.2007 10:43