Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
 
kkk666
0 / 0 / 1
Регистрация: 12.05.2015
Сообщений: 59
1

Активация ADODataSet

28.04.2017, 15:29. Просмотров 326. Ответов 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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.04.2017, 15:29
Ответы с готовыми решениями:

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

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

удаление через ADODataSet
удаляю строки в таблицах в access-e void __fastcall...

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

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

3
Sasha
4924 / 2388 / 530
Регистрация: 05.06.2008
Сообщений: 7,482
Записей в блоге: 3
29.04.2017, 22:52 2
Какой запрос прописан ADODataSetUserTable?
0
kkk666
0 / 0 / 1
Регистрация: 12.05.2015
Сообщений: 59
30.04.2017, 14:16  [ТС] 3
Цитата Сообщение от 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
Bogdan144
0 / 0 / 0
Регистрация: 16.10.2016
Сообщений: 1
26.05.2017, 18:08 4
Скинь пожалуйста полный код авторизации пользователя без SQL запросов, заранее спасибо. И разобрался ли ты с прошлой ошибкой ?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.05.2017, 18:08

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

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

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru