Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проблема с ADO под win98

520
30 июля 2006 года
inkognitum
155 / / 03.05.2006
ПРивет всем!
У меня программа использует связь с базой акцесс с помощью технологии ADO.... после омпиляции программа свободно идет под XP, но при запуске программы под WIndows 98... вызывает фатальную ошибку и закрываеться...

я слышал что есть проблема технологии ADO с Windows98..

и по этому грешу на нее.....

ктонить сталкивался с этой проблемой и как ее решить?
если надо что то поставить под 98 то дайте линку где можно поискать?
1
30 июля 2006 года
kot_
7.3K / / 20.01.2000
[QUOTE=inkognitum]ПРивет всем!
У меня программа использует связь с базой акцесс с помощью технологии ADO.... после омпиляции программа свободно идет под XP, но при запуске программы под WIndows 98... вызывает фатальную ошибку и закрываеться...

я слышал что есть проблема технологии ADO с Windows98..

и по этому грешу на нее.....

ктонить сталкивался с этой проблемой и как ее решить?
если надо что то поставить под 98 то дайте линку где можно поискать?[/QUOTE]
Если предполагается запуск под Win9x - то стоит учитывать что по архитектуре это разные системы - я компилировал проект под WinNT5 и под Win9x по отдельности. Вероятно существует более изящное решение - лично я его даже не искал. Естественно это возможно сделать если программа не использует операционно-специфических решений - типа прав доступа и т.д. В противном случае #ifdef ... #endif и прочие не очень хорошие решения.
Если считаешь нужным все же найти решение - проверь версии библиотек, которые использует программа, на ХР и на 98 - возможно удасться их обновить до нужной версии, и - может быть - программа заработает. (Не забудь предварительно сделать бекап и загрузочный диск)
7.6K
30 июля 2006 года
sergeinv
3 / / 07.05.2004
Рекомендую реализовывать в ADOConnection прописывать работу с
DSN файлом, и каждый раз при настройке приложения корректировать этот самый DSN файл в конкретной ОС.
DSN файлы для каждой конкретной ОС могут быть отличны, и делать один универсальный, а потом каждый раз при переносе программы
корректировать строки DSN файла - ограничивать совместимость программы-СУБД с различными версиями Windows.
Лучше, если в TMainMenu вашей СУБД будет пункт настройки, через
которые будет возможно создание DSN файла с помощью стандартного
инструмента Windows - ODBCAD32.

ActiveX Data Objects - очень мощный инструмент позволяющей СУБД
быть нечувствительной к физической части БД в том числе и к
"полигонному" Access. Хорошо сделанные СУБД, где доступ к БД реализован через ADO совместимы c MS SQL Server, DBASE, Access, Visual FoxPro, Paradox, Excel... на различных Windows
Все это работает.
17K
31 июля 2006 года
tdutybq
7 / / 14.06.2006
Незнаю я делал через ADO, прекрасно работает и в Win98. Никаких проблем!
294
01 августа 2006 года
Plisteron
982 / / 29.08.2003
Мои 5 копеек. Обнови ADO (http://www.rgreat.ru/Dirs/dir002-00033.htm, http://www.lutron.ru/onespec/installation/mdac.html) на машине Win98.
520
03 августа 2006 года
inkognitum
155 / / 03.05.2006
Спасибо за помощь!

1) Самый простой способ это действительно закомпилить под разными виндами... так скорей всего и сделаю

2) Этот проект будет распространятся на дисках.... и никаждый сможет редактировать этот конфиг.файл...(извините если чтото не верно понял)

3) Я вычитал что надо обновить версию, как посоветовал мне - Plisteron, я скачал версию 2,8.... но не помагло :(

Спасибо за помощь!
520
03 августа 2006 года
inkognitum
155 / / 03.05.2006
Я там еще CppWebBrowser использую... может с ним проблемы??

самое главное что программа запускается, но как доходит до определеного момента выдает ошибку вот где то в этом коде:
Код:
logo->LoadFromFile (GetStringName(Application->ExeName,0)+"\\img\\logo.bmp");
        left_m->LoadFromFile (GetStringName(Application->ExeName,0)+"\\img\\left_menu.bmp");
        bmp->LoadFromFile (GetStringName(Application->ExeName,0)+"\\img\\fon.bmp");
       
        DecoderBase();
        ADOTable1->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+path+"data.dat;Persist Security Info=False";
        ADOTable2->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+path+"data.dat;Persist Security Info=False";
        ADOTable3->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+path+"data.dat;Persist Security Info=False";
        ADOTable4->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+path+"data.dat;Persist Security Info=False";
        ADOTable5->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+path+"data.dat;Persist Security Info=False";

        ADOQuery1->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+path+"data.dat;Persist Security Info=False";
        ADOQuery2->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+path+"data.dat;Persist Security Info=False";

        ADOTable1->Active = true;
        ADOTable2->Active = true;
        ADOTable3->Active = true;
        ADOTable4->Active = true;
        ADOTable5->Active = true;

        Form1->WindowState = wsMaximized;
        ChDir(GetStringName(Application->ExeName,0));
        int sek = 0;
        if (ADOTable4->FieldByName("email")->AsString == "1"){
                 mail_ = true;
                 rassilka[sek] = "Эллектронная";
                 manager[sek] = "email"; sek++;
        } else mail_ = false;
        if (ADOTable4->FieldByName("pochta")->AsString == "1"){
                 pochta_ = true;
                 rassilka[sek] = "По почте";
                 manager[sek] = "mail"; sek++;
        } else pochta_ = false;
        if (pochta_ == false && mail_ == false) Button14->Visible = false;
       // Button1Click(NULL);
        CppWebBrowser1->SetFocus();
        DoubleBuffered = true;

        int j = 0;
        ADOTable5->First();
        AnsiString pole_menu;
        while (!ADOTable5->Eof){
                pole_menu = ADOTable5->FieldByName("администрация")->AsString;
                if (pole_menu!="") administration[j] = pole_menu;
                pole_menu = ADOTable5->FieldByName("городской_совет")->AsString;
                if (pole_menu!="") gor_svet[j] = pole_menu;
                pole_menu = ADOTable5->FieldByName("справка")->AsString;
                if (pole_menu!="") spravka[j] = pole_menu;
                pole_menu = ADOTable5->FieldByName("левое")->AsString;
                if (pole_menu!="") leftmenu[j] = pole_menu;
                ADOTable5->Next();
                j++;
        }
        leftm= CreateRoundRectRgn(5,5,(Panel5->Width-5),(Panel5->Height - 5),20,20);
        SetWindowRgn(Panel5->Handle,leftm,1);
        list->Items->Clear();
        Form1->list->Items->Add(html_body0_);
        Form1->list->Items->Add(html_top0);
        Form1->list->Items->Add(html_body1);
        Form1->list->Items->Add(html_body9);
        Form1->list->Items->Add(html_body10);
        Form1->list->Items->Add(html_body4);
        Form1->list->Items->Add(html_body5);
        Form1->list->Items->Add(html_body6);
        Form1->list->Items->Add(html_body7);

        Form1->list->Items->Add(html_body8);
        list->Items->Add("<html><body background = 'left_menu.bmp' &#111;&#110;selectstart='return false' scroll='yes'>");
        for (int l=0;l<=(j-1);l++)
                list->Items->Add(AddLeftMenu(leftmenu[l])+"<p><img src='line.gif' border=0><p>");
        list->Items->Add("</font></table></body></html>");
        list->Items->SaveToFile(path + "left_menu.html");
        CppWebBrowser3->Navigate(Variant(path + "left_menu.html"),NULL,NULL,NULL,NULL);
        SetNormalDroppedWidth(ComboBox1);

        /*копируем карты*/
        FileListBox1->Directory = GetStringName(Application->ExeName,0) + "\\manager\\img";
        FileListBox1->Mask = "*.jpg";
        for (int i = 0;i<=(FileListBox1->Items->Count-1);i++){
                AnsiString path1 = FileListBox1->Directory + "\\" + FileListBox1->Items->Strings;
                if (!FileExists(path_map + FileListBox1->Items->Strings))
                        CopyFileA(path1.c_str(), String(path_map + FileListBox1->Items->Strings).c_str(), 0);
        }
        FileListBox1->Mask = "*.*";
        Form1->Caption = ADOTable4->FieldByName("caption")->AsString;


просто не понимаю где тут и что может выдавать ошибку кроме как ADO
и главное выдает ошибку то не ссылаясь там на сторонние библиотеки...
Ошибка при читении по адресу бла-бла-бла.....

и про kernel32.dll заикается что то там....
просто на самом деле проблематично оказалось найти компьтер с Windows98.... да и поставить пока некуда! :(

заранее спасибо!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог