Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.07;
Скачать: CL | DM;

Вниз

"Перезапись" таблиц   Найти похожие ветки 

 
Галинка ©   (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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.027 c
1-1098343269
user 2
2004-10-21 11:21
2004.11.07
button


1-1098793672
dim_
2004-10-26 16:27
2004.11.07
Paint


1-1098351753
V l a d i m i r
2004-10-21 13:42
2004.11.07
Округление


8-1088581377
clampo
2004-06-30 11:42
2004.11.07
grahic analyzer


1-1098866748
новичок-512
2004-10-27 12:45
2004.11.07
Стиль Windows XP и кнопки с иконками