Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Сломал голову C++ Builder / 19 сообщений из 19, страница 1 из 1
22.02.2007, 22:14
    #34351383
Begem0t!k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сломал голову C++ Builder
Вообщем как говориться все работало ))
Еще интереснее я ничего почти не поменял и очудо загадка вот код:
aq1->Close();
aq1->SQL->Clear();
aq1->SQL->Add("SELECT DISTINCT Признак_породы FROM razr WHERE №_разреза= "+AnsiString(NR));

Вылазит ошибка Invalid Pointer Operation ??//Строка с Add
В чем проблема я вобще в ступоре нахожусь причем самое смешное что до этого эти строчки(подобные) повторяються неоднократно :(
Заранее спасибо за ответы !
...
Рейтинг: 0 / 0
22.02.2007, 22:14
    #34351384
Begem0t!k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сломал голову C++ Builder
aq1 это ADOQuery
...
Рейтинг: 0 / 0
23.02.2007, 08:31
    #34351596
gl@z
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сломал голову C++ Builder
A NR - это что? Может, типы данных не сходятся?
...
Рейтинг: 0 / 0
23.02.2007, 09:33
    #34351627
Begem0t!k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сломал голову C++ Builder
gl@zA NR - это что? Может, типы данных не сходятся?
С NR все впорядке это тип int
...
Рейтинг: 0 / 0
23.02.2007, 10:08
    #34351642
muk07
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сломал голову C++ Builder
Код: plaintext
"SELECT DISTINCT Признак_породы FROM razr WHERE №_разреза= "+AnsiString(NR)
У вас написано (char *)+ansistring
Такое неявное преобразование типов невозможно
следует писать
AnsiString(char *)+AnsiString
т.е. в Вашем случае
AnsiString("SELECT DISTINCT Признак_породы FROM razr WHERE №_разреза= ")+AnsiString(NR)
...
Рейтинг: 0 / 0
23.02.2007, 13:14
    #34351875
Lexogen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сломал голову C++ Builder
Begem0t!k gl@zA NR - это что? Может, типы данных не сходятся?
С NR все впорядке это тип int
Тогда нужно:
... + IntToStr(NR) ...
...
Рейтинг: 0 / 0
23.02.2007, 16:40
    #34352146
Begem0t!k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сломал голову C++ Builder
К сожалению все вышеперечисленные методы так и не помогли ((
...
Рейтинг: 0 / 0
23.02.2007, 16:44
    #34352150
Begem0t!k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сломал голову C++ Builder
Код: plaintext
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.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
i1->Canvas->Pen->Color=clWhite;
   i1->Canvas->Brush->Color=clWhite;
   i1->Canvas->Rectangle( 0 , 0 ,i1->Width,i1->Height);
   int End= 0 ;
   int First= 0 ;
   //int NR=1;
   int NP= 1 ;
   TDrawDigit  NewMest;
   vector<TPoint> P;
   TStringList * St=new TStringList();
   St->Add("SELECT MAX(Номер_породы),MIN(Номер_породы) FROM razr WHERE №_разреза= "+AnsiString(NR));
   aq1->SQL=St;

   try
   {
     aq1->Open();

   }
   catch(...)
   {
     MessageBox(f4->Handle,"Не удалось получить данные от базы даннх !","Ошибка чтения",MB_OK);
     return;
   }
   try
   {
     End=aq1->Fields->Fields[ 0 ]->AsInteger  ;
     First=aq1->Fields->Fields[ 1 ]->AsInteger ;
   }
   catch(...)
   {
       MessageBox(f4->Handle,"Не удалось обработать данные !","Ошибка чтения",MB_OK);
       return;
   }
   aq1->Close();
   St->Clear();
   int Priznak= 0 ;
   for(int NP=First;NP<=End;NP++)
   {
     //P.clear();
     St->Clear();
     St->Add("SELECT Координата_X,Координата_Y,Признак_породы FROM razr WHERE №_разреза="+AnsiString(NR)+
     " AND Номер_породы="+AnsiString(NP));
     aq1->SQL=St;
     try
     {
       aq1->Open();
     }
     catch(...)
     {
       MessageBox(f4->Handle,"Не удалось получить данные от базы даннх !","Ошибка чтения",MB_OK);
       return;
     }
     St->Clear();
     TPoint XY;

     for(aq1->First();!aq1->Eof;aq1->Next())
     {
       try
       {
         XY.x=aq1->Fields->Fields[ 0 ]->AsInteger;
         XY.y=aq1->Fields->Fields[ 1 ]->AsInteger;
         Priznak=aq1->Fields->Fields[ 2 ]->AsInteger;
       }
       catch(...)
       {
         MessageBox(f4->Handle,"Не удалось обработать данные !","Ошибка чтения",MB_OK);
         return;
       }
       P.push_back(XY);
      
     }
     if(P.size()== 0 ){continue;}

     TSCover  Cov;
     TPoint * Res = new TPoint[P.size()];
     for(int f= 0 ;f<=P.size()- 1 ;f++)
     {
       Res[f].x=P[f].x;
       Res[f].y=P[f].y;
     }

     Res=Cov.giftwrapHull(Res,P.size());
     for(int f= 0 ;f<=P.size()- 1 ;f++)
     {
       P[f].x=Res[f].x;
       P[f].y=Res[f].y;
     }
     //delete [] OKY;

     //delete [] Res;
     // delete Cov;
   // P.clear();
    NewMest.SetKof(i1->Width/W,i1->Height/H);
    NewMest.DrawFigure(i1->Canvas,P,Priznak,i1->Height );

    P.clear();

   }

    aq1->Close();
    aq1->SQL->Clear();
    aq1->SQL->Add(AnsiString("SELECT DISTINCT Признак_породы FROM razr WHERE №_разреза= ")+AnsiString(IntToStr(NR)));


     try
     {
       aq1->Open();
     }
     catch(...)
     {
       MessageBox(f4->Handle,"Не удалось получить данные от базы даннх !","Ошибка чтения",MB_OK);
       return;
     }
     int YH= 0 ;
     for(aq1->First();!aq1->Eof;aq1->Next())
     {
       try
       {

          NewMest.WriteCube(aq1->Fields->Fields[ 0 ]->AsInteger,i1->Canvas,YH);
          YH+= 20 ;
       }
       catch(...)
       {
         MessageBox(f4->Handle,"Не удалось обработать данные !","Ошибка чтения",MB_OK);
         return;
       }
     }
     //aq1->SQL->Clear();
     aq1->Close();
     //delete NewMest;
     delete St;

Вот весь код процедуры ! Зачем выложил ??? А затем что нашел зависимость при закоомментировании некторых строк ошибка исчезает ?? Чет ниче не понимаю :)
...
Рейтинг: 0 / 0
23.02.2007, 16:47
    #34352153
Begem0t!k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сломал голову C++ Builder
А имеено если убрать строку P.clear() но тогда как сами понисаете массив P не отчищаеться и получаеться не то что надо ((
...
Рейтинг: 0 / 0
23.02.2007, 17:13
    #34352185
Lexogen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сломал голову C++ Builder
Брекпоинты ставили? Построчно выполняли? Какие значения используэмых переменных при входе в строку, на которой генерится исключения?
...
Рейтинг: 0 / 0
23.02.2007, 17:36
    #34352218
Begem0t!k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сломал голову C++ Builder
LexogenБрекпоинты ставили? Построчно выполняли? Какие значения используэмых переменных при входе в строку, на которой генерится исключения?
Как раз этим очень тщательно занимаюсь ! И точно все скажу
...
Рейтинг: 0 / 0
23.02.2007, 17:49
    #34352240
Begem0t!k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сломал голову C++ Builder
Все исправил все работает !!!
Но давайте думать вместе просто интересно что произходит ???

Смотрите:
Пошагово пробрал весь код и выяснилось что
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
   NewMest.SetKof(i1->Width/W,i1->Height/H);
    NewMest.DrawFigure(i1->Canvas,P,Priznak,i1->Height );

    P.clear();

   }

    aq1->Close();
    aq1->SQL->Clear();//После вызова этой строки вначале вызвался деструктор класса --
 -- Vector ??? Почему ??? Потом деструктор моего класса DrawDigit и после этого вылазит Invalid Pointer Operation - Я вобщем просто эт строку убрал и все !! Но почему происходят такие странные действия то ???
...
Рейтинг: 0 / 0
23.02.2007, 18:52
    #34352295
Begem0t!k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сломал голову C++ Builder
Не кароче какя то байда ничего не работает все равно ! Эту строку то я удалил но в итоге почторяя эту процедуру раза 3 снова таже ошибка!
...
Рейтинг: 0 / 0
24.02.2007, 11:20
    #34352649
Begem0t!k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сломал голову C++ Builder
Тема закрыта просто напутал там с указателями )))
...
Рейтинг: 0 / 0
26.02.2007, 06:50
    #34353930
Карабас Барабас
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сломал голову C++ Builder
muk07
m> У вас написано (char *)+ansistring Такое неявное преобразование типов
m> невозможноДа ты што ! А мужики то и не знают !
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
26.02.2007, 06:50
    #34353931
Карабас Барабас
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сломал голову C++ Builder
Lexogen L> Тогда нужно:
L> ... + IntToStr(NR) ...масло масленное
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
26.02.2007, 06:52
    #34353932
Карабас Барабас
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сломал голову C++ Builder
Lexogen L> Тогда нужно:
L> ... + IntToStr(NR) ...IntToStr - это тяжелое наследие паскалевской вцл, must die
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
26.02.2007, 07:15
    #34353940
Begem0t!k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сломал голову C++ Builder
Да мне просто всего насоветовали вот я и навствлял с испугу )
...
Рейтинг: 0 / 0
26.02.2007, 17:28
    #34355676
muk07
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сломал голову C++ Builder
Карабас Барабас
muk07m> У вас написано (char *)+ansistring Такое неявное преобразование типов
m> невозможно
Да ты што ! А мужики то и не знают !

Да, я опростоволосился.
Стыдно говорить, но этому моему предрассудку оч.много лет.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Сломал голову C++ Builder / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]