Форум: "Базы";
Текущий архив: 2004.11.07;
Скачать: [xml.tar.bz2];
Вниз"Перезапись" таблиц Найти похожие ветки
← →
Галинка © (2004-10-06 14:58) [0]Как организовать презапись таблицы, после получения сообщения, о том что такая таблица уже существует.
Ситуация такая. Я в своей БД (Акцес) создаю таблицы с результатами расчета, для дальнейшего анализа. По умолчанию все имена таблиц имеют общую часть. Причем как таблицы с исходными данными, так и таблицы с результатами. Что-то вроде M44_Epic, M44_Punkty, Rez_M44_Epic, Rez_M44_Radiusy. Это М44 берется из названия главной исходной таблицы методом сору. (Вся заморочка с таблицами потому, что пользователь-заказчик мой привык на уровне ДОСа работать, когда все это было в отдельных файлах. Поэтому, для обеспечения, так сказать мягкого перехода, я сделала пока таблицы из тех самых файлов. Чтобы им проще было. Но глобальную таблицу сделать буду. И выборку из нее обеспечу.) Так вот, при пересчете исходных таблиц, для которых уже есть результирующие, возникает, совершенно справедливо, ошибка, что таблицы с таким названием уже есть. Так вот вроде как и надо предусмотреть возможность, для "сохранения", а фактически создания, таблиц с новым общем именем. Но хочется сделать так как в ворде (по-моему), если возникает ошибка, приложение должно спросить их (таблицы) перезаписать или сохранить (читай создать) по др именем.
Буду рада любым советам.
← →
Ольга (2004-10-06 15:23) [1]Для начала попытайтель четко сформулировать вопрос, не вдаваясь в детали.
← →
Sergey13 © (2004-10-06 15:30) [2]Присоединяюсь к [1], но из того что я понял (или не понял 8-) мне кажется "Не правильной дорогой идете, товарищи!"
← →
Галинка © (2004-10-06 15:45) [3]Конкретно... Ну что же...
Так вот, при пересчете исходных таблиц, для которых уже есть результирующие, возникает, совершенно справедливо, ошибка, что таблицы с таким названием уже есть. Так вот вроде как и надо предусмотреть возможность, для "сохранения", а фактически создания, таблиц с новым общем именем. Но хочется сделать так как в ворде (по-моему), если возникает ошибка, приложение должно спросить их (таблицы) перезаписать или сохранить (читай создать) по др именем.
← →
Галинка © (2004-10-06 15:50) [4]Пока надума что-то вроде так:
var
TekTabName, NewTabName:string;
begin
****************{Создание таблицы}************************
try
ADOCommand.ComandText:="CreateTable TabName ...."
ADOCommand.Execute;
exception
on E:EOleException do
begin
if (MessageDlg("Такая таблица %TABLENAME% существует!"+#13+#10+
"Записать данные в другую таблицу?",
mtWarning, [mbYes, mbNo], 0)
= mrYes) then
if NewTabNameDlg.ShowModal=mrOK then {Диалог на новое имя}
begin
NewTabName:=NewTabNameDlg.Edit1.Text;
ADOCommand.ComandText:="CreateTable TabName"+NewTabName+"...."
ADOCommand.Execute;
TekTabName:=NewTabName;
end
else
begin
ADOCommand.ComandText:="Delete from TabName ...."
ADOCommand.Execute;
TekTabName:=TabName;
end;
end;
end;
*************{Процедура заполнения таблиц}*********************
{ производится уже с конкретным именем таблицы }
end;
← →
Sergey13 © (2004-10-06 15:55) [5]2Галинка ©
А зачем результаты расчета сохранять, да еще в отдельных таблицах? Сама же потом запутаешься. Может (уж если шибко сохранять надо) просто добавить идентификатор расчета (дата например или еще чего) в одну таблицу. И дополнять ее. ИМХО ты не "мягкий переход" обеспечиваешь, а геморой себе наживаешь на будущее.
← →
Галинка © (2004-10-06 16:11) [6]Для Сергея.
На счет гемороя - это я уже начинаю понимать. Но раз начала... Просто понимаешь, конечным продуктом расчета, является не таблица, а схема, построенная на основе данных выбранных, из результирующих таблиц. Результирующих таблиц две, в одной собраны параметры эпицентров (назовем их так), а в другой, подчиненной, радиусы изосйест, посчитанных для этих эпицентров. По этим радиусам и будут строиться схемы. Я пыталась автоматизировать их выбор в соответствии со строгими условиями, но заказчик сказал, что эта часть алгоритма не формализована, и выбирают они методом научного тыка. Поэтому и пришлось сделать две связанные таблицы (для облегчения просмотра). И всплывающее меню к ним, для выбора конкретного эпицентра, а так же для задания остальных его параметров (таких как географическое положение). Вот...
← →
Sergey13 © (2004-10-06 16:17) [7]2[6] Галинка © (06.10.04 16:11)
>На счет гемороя - это я уже начинаю понимать. Но раз начала...
то надо геморой усиливать до хронической формы? 8-) Почему бы тогда не писать в постоянные таблицы с идентификатором расчета? Все таки лучше будет. А для юзера это вообще фиолетово. Он и не догадается про это. 8-)
← →
Mike Kouzmine © (2004-10-06 16:22) [8]Перед сохранением новых данных старые удалять? А таблицы оставить.
← →
sniknik © (2004-10-06 16:44) [9]ADOConnection.GetTableNames может помочь, не доводить до ексепта... тем более он может быть и по другому поводу.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.11.07;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.037 c