C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
ADOTable->LoadFromFile() не работает
Владимир_
Отправлено: 29.10.2003, 16:25


Не зарегистрирован







Делаю так:
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("INSERT INTO t1 (ID1,ID2) VALUES (1,2)");
ADOQuery1->ExecSQL();

ADOTable1->TableName = "t1";
ADOTable1->Active = true;
ADOTable1->SaveToFile("data.txt", pfADTG);
ADOTable1->Active = false;

ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("DROP TABLE t1");
ADOQuery1->ExecSQL();

ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("CREATE TABLE t1 (ID1 INT, ID2 INT)");
ADOQuery1->ExecSQL();

ADOTable1->Active = true;
ADOTable1->LoadFromFile("data.txt");
ADOTable1->Active = false;

В итоге получаю пустую таблицу! А файл data.txt создается и не пустой.
Как исправить?
Admin
Отправлено: 29.10.2003, 21:28


Владимир

Группа: Администратор
Сообщений: 1190



Естественно, вы же создаете новую пустую таблицу t1:

CODE

ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("CREATE TABLE t1 (ID1 INT, ID2 INT)");
ADOQuery1->ExecSQL();
Владимир_
Отправлено: 30.10.2003, 17:27


Не зарегистрирован







QUOTE (Admin @ 29/10/2003, 22:30)
Естественно, вы же создаете новую пустую таблицу t1:

CODE

ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("CREATE TABLE t1 (ID1 INT, ID2 INT)");
ADOQuery1->ExecSQL();

А дальше читаю в нее:

ADOTable1->Active = true;
ADOTable1->LoadFromFile("data.txt");
ADOTable1->Active = false;

Или что-то я делаю не так?
Admin
Отправлено: 02.11.2003, 16:29


Владимир

Группа: Администратор
Сообщений: 1190



Неправильна последняя строчка:
ADOTable1->Active = false;
так вы же закрываете в ней таблицу ADOTable1

QUOTE

ADOTable1->Active = true;
ADOTable1->LoadFromFile("data.txt");
ADOTable1->Active = false;


В итоге получаете пустой Grid
(связанный с таблицей ADOTable1)

CODE

void __fastcall TForm1::Button1Click(TObject *Sender)
{
   ADOTable1->Active = true;
   ADOTable1->SaveToFile("c:\\---\\myBase.txt",pfADTG);
   ADOTable1->Active = false;
// сохранили в файл, закрыли ADOTable1
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
    ADOTable1->LoadFromFile("c:\\---\\myBase.txt");
    ADOTable1->Active = true;
// считали из файла, открыли ADOTable1
}
Владимир_
Отправлено: 03.11.2003, 10:30


Не зарегистрирован







СПАСИБО!

Вернуться в Работа с базами данных в C++Builder