Tadotable и Tadostoredproc

Тема в разделе "SQL", создана пользователем NeviDimka, 30 апр 2007.

  1. NeviDimka

    NeviDimka Гость

    Трабла№1:
    есть ДатаМодуль, на нем помимо процего есть 5 компонентов ADOTable, в которых выбраны "Connection" и "TableName", и "Active" поставлен в true. При запыске вываливается ошибка (см. error1), после нажатия ОК и F7/F8 ошибка вылазит снова (и так 5 раз), после 5го нажатия F8 приложение наконец-то запускается и далее работает без ошибок.:rolleyes:
    Трабла№2:
    После настройки экз. компонента ADOStoredProc, при попутке выставить в TRUE свойство Active - вылазит ошибка (см error2) :(
     

    Вложения:

    • error1.jpg
      error1.jpg
      Размер файла:
      16,8 КБ
      Просмотров:
      76
    • error2.jpg
      error2.jpg
      Размер файла:
      9,5 КБ
      Просмотров:
      73
  2. Barmutik

    Barmutik Гость

    Тяжело сказать так ходу .. вы попробуйте выставить Active у таблиц в рантайме и посмотрите на чём падает .. А какой сервер БД Вы используете ?
     
  3. NeviDimka

    NeviDimka Гость

    Теперь включаю Active при создании формы - таже история, только теперь вылезают ошибки об неправильном чтении/записи из ячейки по адресу Х в ячейку по адресу У, так для каждого из 5 компонентов.
    Используется MsSQLServer2000 и C++Builder 6
     
  4. Barmutik

    Barmutik Гость

    Что-то сздаётся мне Вы не так делаете .. можете код в студию где Вы открываете таблицы...
     
  5. NeviDimka

    NeviDimka Гость

    т.е.??? там элементарная программа, написанная по инструкции (вот главная форма)
    //---------------------------------------------------------------------------

    void __fastcall TMainForm::N2Click(TObject *Sender)
    {
    DM->ADOAuthors->Open();
    FormAuthors->Show();
    }
    //---------------------------------------------------------------------------
    void __fastcall TMainForm::N3Click(TObject *Sender)
    {
    DM->ADOBooks->Open();
    FormBooks->Show();
    }
    //---------------------------------------------------------------------------
    void __fastcall TMainForm::N4Click(TObject *Sender)
    {
    DM->ADOPublishing_house->Open();
    FormPublishing_house->Show();
    }
    //---------------------------------------------------------------------------
    void __fastcall TMainForm::N5Click(TObject *Sender)
    {
    DM->ADODelivers->Open();
    FormDelivers->Show();
    }
    //---------------------------------------------------------------------------
    void __fastcall TMainForm::N6Click(TObject *Sender)
    {
    DM->ADOPurchases->Open();
    FormPurchases->Show();
    }
    //---------------------------------------------------------------------------
    void __fastcall TMainForm::N7Click(TObject *Sender)
    {
    //DM->ADOSP_Count->Open();
    FormProcedure->Show();
    }
    //---------------------------------------------------------------------------

    void __fastcall TMainForm::FormCreate(TObject *Sender)
    {
    DM->ADOPurchases->Active = true;
    DM->ADOBooks->Active = true;
    DM->ADOAuthors->Active = true;
    DM->ADODelivers->Active = true;
    DM->ADOPublishing_house->Active = true;
    }
    //---------------------------------------------------------------------------
     
  6. NeviDimka

    NeviDimka Гость

    не знаю почему, но первый глюк, как выяснилось вылезает у меня только при Run'e из билдера, а про второй - в билдере через ж реализован ODBC драйвер, когда подключился напрямую к SQL - все заработало.
    Код выкладывать хлопотно. просто думал - что это распространенный глюк, а я новичок.
     
  7. Barmutik

    Barmutik Гость

    У меян просто была мысль что Вы обращаетесь к DM в FormCreate MainForm и судя по вему он ещё не создан .. отсюда и ошибки...
     
  8. NeviDimka

    NeviDimka Гость

    Кстати возможно...
    Теперь я их активирую при входе в меню.
    Можно еще "чайный" вопрос - чем отличается по назначению методы Open и свойство Active?
     
  9. Barmutik

    Barmutik Гость

    Ничем ... Если Вы посмотрите внутри код метода Open Вы увидите что он устанавливает Active = True
     
  10. NeviDimka

    NeviDimka Гость

    Разобрался с траблой№2: оказывается в Билдерах через Ж.. организована работа ODBC драйвера, если подключиться напрямую к SQL - все работает!
    2Barmutik, все-таки отличается -> метод Open дает возможность видеть на ADOTable значения всех полей, если просто активировать, то можно будет редактировать, но вы ничего не увидите в таблицах.
     
  11. Barmutik

    Barmutik Гость

    Спорить не буду .. уже крайне давно не использовал компоненты TTable .. но так просто приведу реализацию метода Open в исходниках:

    Код (Text):
    procedure TDataSet.Open;
    begin
    Active := True;
    end;
    Если Вы здесь сможете обнаржить что-либо ещё кроме установки Active := True то дайте мне знать :)
     
  12. NeviDimka

    NeviDimka Гость

    Я не спец конечно, говорю то, что наблюдал.
     
Загрузка...
Похожие Темы - Tadotable Tadostoredproc
  1. Позитрон
    Ответов:
    3
    Просмотров:
    1.108

Поделиться этой страницей