Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 1
Регистрация: 12.05.2015
Сообщений: 60
MS Access

Активация ADODataSet

28.04.2017, 15:29. Показов 1218. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Проблема в следующем.
Нужно забацать авторизацию по таблицам акцесса. и вроде бы все норм, и компилится, но при нажатии на кнопку вечная ошибка аккурат:
"Произошли ошибки во время выполнения многошаговой операции OLE DB."
и при break ссылается на строку (вторую):
ADODataSetUserTable->Active=true;
ADODataSetUserTable->First();


как быть? помогите пожалуйста, совсем уже все перепробовал, мозгов не хватает пофиксить. проект прилогаю, код ниже.

https://cloud.mail.ru/public/LtV9/P4hXm68Pr

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
TFormAutor *FormAutor;
using namespace std;
double LogPass [800];
int I,H, Counts;
AnsiString Login, Password;
AnsiString ResultLogPass;
//---------------------------------------------------------------------------
__fastcall TFormAutor::TFormAutor(TComponent* Owner)
    : TForm(Owner)
{}
//---------------------------------------------------------------------------
void __fastcall TFormAutor::ButtonRegistrationClick(TObject *Sender)
{ //FormAutor->Visible=False;
 FormRegistred->ShowModal();}
//---------------------------------------------------------------------------
 
void __fastcall TFormAutor::ButtonEnterClick(TObject *Sender)
{
ADODataSetUserTable->Active=true;
ADODataSetUserTable->First();
Counts=0;
 for (I = 0; I=ADODataSetUserTable->RecordCount; -1 ) //Обработка данных Логина и Пароля пользователя.
{
     LogPass[I] = ADODataSetUserTable->FieldValues ["UserName"]," "+ADODataSetUserTable->FieldValues ["UserPass"];
     ADODataSetUserTable->Next();
     Counts++;
}
ResultLogPass = Trim(EditLogin->Text)," "+Trim(EditPassword->Text);
for (H = 0; H=Counts; H++)                 //Цикл проверки данных на истину.
    {
    if (ResultLogPass == LogPass[H])
        {
     //   UserIndex=H;
          FormProgramm->ShowModal();
        }
     else
            LabelInfoNone->Caption="Не верный логин или пароль";
 }
}
P.S: так же другим образом пытался авторизацию реализовать, приложу отдельным cpp файлом, код ниже:


https://cloud.mail.ru/public/9kap/xoJBpQ5FH

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
TFormAutor *FormAutor;
using namespace std;
double LogPass[800];
int I,H, Counts;
AnsiString Login, Password;
AnsiString ResultLogPass;
//---------------------------------------------------------------------------
__fastcall TFormAutor::TFormAutor(TComponent* Owner)
    : TForm(Owner)
{}
//---------------------------------------------------------------------------
void __fastcall TFormAutor::ButtonRegistrationClick(TObject *Sender)
{ //FormAutor->Visible=False;
 FormRegistred->ShowModal();}
//---------------------------------------------------------------------------
 
void __fastcall TFormAutor::ButtonEnterClick(TObject *Sender)
{
AnsiString al=EditLogin->Text;
AnsiString bl;
AnsiString ap=EditPassword->Text;
AnsiString bp;
ADODataSetUserTable->First();
  for (int i=0;i<ADODataSetUserTable->RecordCount;i++)
  {
   bl=ADODataSetUserTable->FieldByName("UserName")->AsString;
    bp=ADODataSetUserTable->FieldByName("UserPass")->AsString;
   if (al != bl)
   {
ShowMessage("Ћогин не верен!");
EditLogin->Clear();
return;
   }
 if  (ap != bp)
 {
ShowMessage("ѕароль не верен!");
EditPassword->Clear();
return;
 }
     else
     {
FormProgramm->ShowModal();
     }
  }
}
Добавлено через 37 минут
во втором варианте ошибка в следующем:

First chance exception at $77014878. Exception class EDatabaseError with message 'ADODataSetUserTable: Cannot perform this operation on a closed dataset'. Process Registr.exe (5396)

Breack указывает на начало второй строки

ADODataSetUserTable->First();
for (int i=0;i<ADODataSetUserTable->RecordCount;i++)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.04.2017, 15:29
Ответы с готовыми решениями:

ADODataSet
Подскажите, пожалуйста, как поместить в DBGrid набор данных, возвращаемых ADODataSet. Заранее спасибо!

ADODataSet
ADODataSet-&gt;CommandText = Query; Подскажите, как определить удачно выполнился запрос или нет ?

удаление через ADODataSet
удаляю строки в таблицах в access-e void __fastcall TForm5::Button4Click(TObject *Sender) { try { ...

3
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
29.04.2017, 22:52
Какой запрос прописан ADODataSetUserTable?
0
0 / 0 / 1
Регистрация: 12.05.2015
Сообщений: 60
30.04.2017, 14:16  [ТС]
Цитата Сообщение от Sasha Посмотреть сообщение
Какой запрос
уже пофиксил. без SQL запросов авторизацию сделал

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
ADOTable1->First();
  for (int I=0;I<ADOTable1->RecordCount;I++)
  {
    Log[I] = ADOTable1->FieldValues["UserName"];
    Pass[I]= ADOTable1->FieldValues["UserPass"];
    AnsiString al=Log[I]+" "+Pass[I];
    UserIndex=ADOTable1->FieldValues["IDUser"];
    ADOTable1->Next();
    Counts++;
AnsiString  ResultLog = Trim(EditLogin->Text);
AnsiString  ResultPass = Trim(EditPassword->Text);
ResultLogPass = Trim(EditLogin->Text)+" "+Trim(EditPassword->Text);
     //Edit1->Text=al;
     //Edit2->Text=ResultLogPass;
 
if (ResultLogPass == al)
        {
        FormProgramm->Edit1->Text=UserIndex;
        ADOTable1->First();
        FormProgramm->ShowModal();  break;
        }
  }
  }
0
0 / 0 / 0
Регистрация: 16.10.2016
Сообщений: 1
26.05.2017, 18:08
Скинь пожалуйста полный код авторизации пользователя без SQL запросов, заранее спасибо. И разобрался ли ты с прошлой ошибкой ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.05.2017, 18:08
Помогаю со студенческими работами здесь

ADODataSet->Column - представление в коде
Хочу заполнить пиклист для колонки Music (8я), ADODataSet1, данные берёт из ADODataSetMusicTable - её колонки Music void __fastcall...

DBGrid+DataSourse+ADODataSet+MSAccess
На двух формах есть по DBGrid. Оба работают с одной и той же базой. Если на одной меняем какое то поле, то на второй оно меняется после...

Выборка через ADODataSet по дате с DateTimePicker
Привет. Имеется база данных в access,подключение к нему идет через ADOConnection и ADODataSet. ADODataSet подключается к таблице party,...

Проблемы с сортировкой в подставляемых полях. AdoDataSet
Всем доброго времени суток, в общем такая проблема, пытаюсь реализовать сортировку по полю, нажатому в загаловке DbGrid-a, всё вроде-бы...

Проверить записи в ListBox и ADODataSet на совпадение
Есть таблица с 2 поями: Код и Наименование. Есть ListBox. Мне нужно создать цикл в котором я сравниваю название каждого элемента в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru