| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Базы данных и репортинг > люди помогите с ошибкой- не знаю че делать! |
| Автор: Anticler 13.6.2007, 17:28 |
| Помогите пожалуйста - диплом через неделю!!! У меня прога с базами данных. Ввел данные - работала нормально, потом дополнил данные - все пипец! Суть такова: Кнопка - при помощи SQL с условием вводит суммы в таблицу. Потом начала вылетать ошибка: "Access violation at address 4BE34726 in module 'IDAPI32.DLL'. Read of address 00000000." Прверял по строкам вылетала на Query.Open; А теперь вылетает на Query.Clear; IdAPI32.dll - библиотека из BDE. Даже незнаю, что и делать. На всех нормальных компах такая же фигня. |
| Автор: Anark1 14.6.2007, 07:30 |
| Код в студию |
| Автор: pseud 14.6.2007, 11:55 |
| если Query у тебя выполняет не запрос SELECT а операции ISERT UPDATE DELETE то не Open, а ExecSQL. возможно у Query стоит убрать RequestLive. а вообще поддерживаю |
| Автор: Anticler 14.6.2007, 15:18 |
| ВОТ КОД Query1.Close; Query1.SQL.Clear; Query1.SQL.add('SELECT COUNT( id ) as kol FROM "admn.DB" Adm '); Query1.SQL.add('WHERE (Mes ='+ IntToStr( DBGridEh2.Col-4)+' ) AND (Adm."Year" = '+ ComboBox2.Text+')'); >Query1.Open; // ************сначала здесь выбивало Query1.Close; >Query1.SQL.Clear; // ************ А ТЕПЕРЬ ЗДЕСЬ Query1.SQL.add('SELECT COUNT( Adm.NorDok ) KOL'); Query1.SQL.add('FROM "admn.DB" Adm '); Query1.SQL.add(' INNER JOIN "NorDocN.db" Nordocn ON (Adm.NorDok = Nordocn.Doc)'); Query1.SQL.add(' INNER JOIN "NorDocC.db" Nordocc ON (Nordocn.Id_cat = Nordocc.Id) '); Query1.SQL.add('WHERE (Adm."Year" = :yr) and (Adm.Mes = :ms) '); Query1.SQL.add('GROUP BY Nordocc.Id, Nordocc.Id '); Query1.Prepare; Query1.ParamByName('yr').AsInteger := StrToInt( ComboBox2.text); Query1.ParamByName('ms').AsInteger := DBGridEh2.Col-4; Query1.Open; Добавлено через 2 минуты и 1 секунду В Query ничего не выставлял все опции по умолчанию (кроме алиаса) |
| Автор: pseud 14.6.2007, 16:26 | ||||
Rodman, ты меня удивил. FROM "admn.DB" Adm это тоже самое, что и FROM table_very_long_name AS t например
|
| Автор: Anticler 14.6.2007, 18:10 |
Уже пробовал и с параметрами и без них - все тоже самое! А кавычки я из QueryBuilder взял. И потом все равно до туда не доходит ошибка выскакивает на Query1.SQL.Clear; а может и на Close; Это псевдоним (типа sum(field) as name) ConnectionString - что это? PS : Я использую парадокс. |
| Автор: neat 14.6.2007, 19:27 |
| Anticler, а не пробовал второй запрос формировать в другом Query? Это так, для проверки. |
| Автор: Anticler 15.6.2007, 08:25 |
| Пробовал! |
| Автор: Rodman 15.6.2007, 08:36 |
строка подключения к базе!!! у тебя вообще подключение как реализованно!!! ну так в каждой СУБД свои нюансы, я не увидел as и вот засомневался!!! Всего ведь знать нельзя!!! ну так а СУБД какая?? или я не увидел? |
| Автор: pseud 15.6.2007, 08:49 |
| Rodman, поэтому человек использует BDE поэтому не стоит заморачиваться на ConnectionString (ADO) вообще не понимаю как такое возможно используй BreakPoint и определись таки на что. Но ни в одном ни в другом случае ошибки быть не должно. |
| Автор: Anticler 16.6.2007, 13:37 | ||
Курсор стоит на Query1.SQL.Clear; |
| Автор: Rodman 16.6.2007, 14:56 | ||
а если не чистить и делать так
|
| Автор: Anticler 16.6.2007, 21:00 |
| Люди заработало !!! Причем, абсолютно ничего не менял !!! Даже не знаю что могло повлиять. Неделю парился и тут вдруг работает без ошибок. Запускаю старый ехе - эта ошибка, а новый только что откомпилированный - как часики!! Хотя странно все это... я ведь на многих компах его копилировал а результата небыло. Скорее всего глюк компилятора Delphi 7. Надеюсь болше этой ошибки я не увижу. И спасибо всем за то что попытались помочь мне (все ваши варианты испробовал). PS: И тему можно закрыть чтоб глаза не мазолила |