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

Активация ADODataSet

28.04.2017, 15:29. Показов 1201. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru