Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2007.08.19;
Скачать: [xml.tar.bz2];

Вниз

BatchMove копирование   Найти похожие ветки 

 
Oleg_teacher ©   (2007-05-04 20:58) [0]

Использую BatchMove для копирования базы из Table1 в Table2
procedure CopyTable(FromDir, SrcTblName, ToDir, DestTblName:string);
begin
with Form1.Table2 do
begin
    Active:=false;
    DatabaseName:=ToDir;
    TableName:=DestTblName;
    TableType:=ttParadox;
 end;
with Form1.BatchMove1 do
       begin
         Source := Form1.Table1;
         Destination := Form1.Table2;
         Mode := batCopy;
         Execute;
         end;
end;
procedure CopyTable(FromDir, SrcTblName, ToDir, DestTblName:string);
var s:string;
begin
with Form1.Table2 do
begin

    Active:=false;
    DatabaseName:=ToDir;
    TableName:=DestTblName;
    TableType:=ttParadox;
    Active:=true;
end;
Form1.Table2.Active:=true;
with Form1.BatchMove1 do
       begin
         Source := Form1.Table1;
         Destination := Form1.Table2;
         Mode := batCopy;
         Execute;
      //   ShowMessage(IntToStr(MovedCount) + " records copied");
       end;
end;
но в некоторых случаях (невсегда, не пойму почему) выводится сообщение Table1: Field "FN" not found
перед візовом етой процедуры пишу:
with Form1.Table1 do
begin
    Active:=false;
    DatabaseName:=file_name_save_d;
    TableName:=file_name_save_f;
    TableType:=ttParadox;
end;
Хотя в таблице file_name_save_f полем "FN" и не пахнет
может кто знает почему и ета ошыбка появлется и как ее избежать


 
Desdechado ©   (2007-05-04 21:08) [1]

А протрассировать?


 
Oleg_teacher ©   (2007-05-05 09:05) [2]


> Desdechado ©   (04.05.07 21:08) [1]
> А протрассировать?

а как? плиз помогите


 
Loginov Dmitry ©   (2007-05-05 09:42) [3]

Чему равно file_name_save_d ?
Чему равно file_name_save_f ?


 
Oleg_teacher ©   (2007-05-05 09:53) [4]


> Loginov Dmitry ©   (05.05.07 09:42) [3]
> Чему равно file_name_save_d ?
> Чему равно file_name_save_f ?

file_name_save_d ето путь к папке откуда беру базу. в отладчике после виполнения в мойом случае="C:\Documents and Settings\User\Рабочий стол\Editor2_22_04\Test\NEw\"
file_name_save_f - ето имя файла из которого копирую даные


 
Loginov Dmitry ©   (2007-05-05 10:12) [5]

> file_name_save_f - ето имя файла из которого копирую даные


А должно быть по идее одно лишь имя таблички без-зо всяких расширений и прочего. А причина возможно в том, что табличка Form1.Table2 в некоторых случаях содержит поле FN, которого нету в Form1.Table1 (правда, утверждать это не могу, т.к. BatchMove не юзал уже давно).


 
Oleg_teacher ©   (2007-05-05 10:33) [6]

Смотри:
Значит взял в основной программе вызываю следующее:
(в скобках буду указывать значения реальные при отладке)
file_name:="temporally~";{Здесь понятно!!!}
file_name_save_d:=ExtractFilePath(OpenDialog1.FileName);
{"C:\Documents and Settings\User\Рабочий стол\Editor2_22_04\Test\NEw\" (я выбираю файл с етой папки)}
file_name_save_f:=copy(ExtractFileName(OpenDialog1.FileName),1,pos(".",Extrac tFileName(OpenDialog1.FileName))-1);{NEw- ето имя файла которого я выбрал без разширения}

CopyTable(file_name_save_d,file_name_save_f+"_param",ExtractFilePath(Application.ExeName),file_name+"param~");{Хочу чтобы с выбраной папки скопировался файл file_name_save_f+"_param" (он есть NEw_param.db) в папку где запускается программа с именем file_name+"param~}

Процедура CopyTable имеет вид(переделал чутчуть)
procedure CopyTable(FromDir, SrcTblName, ToDir, DestTblName:string);
begin
with Form1.Table2 do
begin
    Active:=false;
    DatabaseName:=ToDir;
    TableName:=DestTblName;
    TableType:=ttParadox;
end;
with Form1.Table1 do
begin
    Active:=false;
    DatabaseName:=FromDir;
    TableName:=SrcTblName;
    TableType:=ttParadox;
end;
with Form1.BatchMove1 do
       begin
         Source := Form1.Table1;
         Destination := Form1.Table2;
         Mode := batCopy;
         Execute;
       end;
end;

На запуске Execute и выдает ошыбка. Не знаю может я не закрыл Table. Использую Close. Впринцыпе вроде (не знаю) ето закрывает но просто Опен вызвать для Табела и таблица будет открыта? Может есть команда которая полностю закрывает таблицу.
(Так что потом надо снова обезательно
with Form1.Table1 do
begin
    Active:=false;
    DatabaseName:=каталог;
    TableName:=имя;
    TableType:=ttParadox;
end;)??????????????????????????????
Причем примечательній факт:
Когда первій раз копирую то все нормально
Когда потом еще раз не закріваючи программу копирую тогда ошібка


 
Loginov Dmitry ©   (2007-05-05 10:46) [7]

Form1.Table1 не нужно закрывать (он должен быть открытым (вроде)). А для Form1.Table2 попробуй сделать FieldDefs.Assign(Form1.Table1.FieldDefs), после чего сделать Form1.Table2.CreateTable.
Кстати, копирование табличек Paradox можно реализовать значительно проще - достаточно скопировать файлы *.db, *.px и соответствующие индексные файлы в целевую директорию.


 
Oleg_teacher ©   (2007-05-05 10:51) [8]


> Кстати, копирование табличек Paradox можно реализовать значительно
> проще - достаточно скопировать файлы *.db, *.px и соответствующие
> индексные файлы в целевую директорию.

Ну наверное согласен брать и просто даже копифайл использовать ДА?и копировать *.db, *.px *.mb



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2007.08.19;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.039 c
1-1180368669
Dmitry_177
2007-05-28 20:11
2007.08.19
Перехват клавиатуры


15-1184842707
EGFEFG
2007-07-19 14:58
2007.08.19
Компьютер сам презагружается


2-1185358225
ari_9
2007-07-25 14:10
2007.08.19
FIBPlus - как предотвратить действие (создать исключение) ?


2-1184903356
barin
2007-07-20 07:49
2007.08.19
тип данных


3-1178188976
zdm
2007-05-03 14:42
2007.08.19
Insert





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский