ГоловнаКаталогБлогРейтингЕ-Пошта 
 
 
Зробити домашньою у вибране  

Форуми -> Програмування -> Delphi: Незрозумілий Access Violation при відкритті Query
 
Joe 05:10 30.03.2009 Цитувати № 1 [^]
 
При запиті
Delphi
  Query1.SQL.Clear();
  Query1.SQL.Add('SELECT');
  Query1.SQL.Add('      *');
  Query1.SQL.Add('FROM');
  Query1.SQL.Add('    zayavky,');
  Query1.SQL.Add('    kontragenty as z,');
  Query1.SQL.Add('    kontragenty as p,');
  Query1.SQL.Add('    kontragenty as k,');
  Query1.SQL.Add('    avto as a,');
  Query1.SQL.Add('    avto as pr,');
  Query1.SQL.Add('    vodiy');
  Query1.SQL.Add('WHERE');
  Query1.SQL.Add('    zayavky.id_avto=a.id_a');
  Query1.SQL.Add('  AND');
  Query1.SQL.Add('    zayavky.id_zamovnyk=z.id_k');
  Query1.SQL.Add('  AND');
  Query1.SQL.Add('    zayavky.id_pereviznyk=p.id_k');
  Query1.SQL.Add('  AND');
  Query1.SQL.Add('    zayavky.id_avto=a.id_a');
  Query1.SQL.Add('  AND');
  Query1.SQL.Add('    zayavky.id_prychep=pr.id_a');
  Query1.SQL.Add('  AND');
  Query1.SQL.Add('    zayavky.id_vodiy=vodiy.id_v');
  Query1.SQL.Add('  AND');
  Query1.SQL.Add('    zayavky.id_kliyent=k.id_k');
  Query1.Open()

вилітає Access Violation при Query1.Open()
Якщо закоментувати наступне:

Delphi
  Query1.SQL.Clear();
  Query1.SQL.Add('SELECT');
  Query1.SQL.Add('      *');
  Query1.SQL.Add('FROM');
  Query1.SQL.Add('    zayavky,');
  Query1.SQL.Add('    kontragenty as z,');
  Query1.SQL.Add('    kontragenty as p,');
//  Query1.SQL.Add('    kontragenty as k,');
  Query1.SQL.Add('    avto as a,');
  Query1.SQL.Add('    avto as pr,');
  Query1.SQL.Add('    vodiy');
  Query1.SQL.Add('WHERE');
  Query1.SQL.Add('    zayavky.id_avto=a.id_a');
  Query1.SQL.Add('  AND');
  Query1.SQL.Add('    zayavky.id_zamovnyk=z.id_k');
  Query1.SQL.Add('  AND');
  Query1.SQL.Add('    zayavky.id_pereviznyk=p.id_k');
  Query1.SQL.Add('  AND');
  Query1.SQL.Add('    zayavky.id_avto=a.id_a');
  Query1.SQL.Add('  AND');
  Query1.SQL.Add('    zayavky.id_prychep=pr.id_a');
  Query1.SQL.Add('  AND');
  Query1.SQL.Add('    zayavky.id_vodiy=vodiy.id_v');
//  Query1.SQL.Add('  AND');
//  Query1.SQL.Add('    zayavky.id_kliyent=k.id_k');
  Query1.Open()

Все працює... В чому може бути проблема?

П.С. Проблема виникає на приблизно 70% компів при дефолтних налаштуваннях BDE та MySQLODBC.
 
Admin 10:23 31.03.2009 Цитувати № 2 [^]
 
Більш за все проблема в BDE або MySQLODBC.

Можна спробувати переформатувати запит за допомогою LEFT JOIN, проте не впевнений, що допоможе.


  Логін:
  Пароль:
Книга Фріланс на західному ринку
Книга Фріланс на західному ринку
APServer | SiMan CMS | Лічильник відвідувань | Тека сайтів | Рейтинг | Форум | Download | Шаблони сторінок | Посібник Smarty | Підручник PHP | Статті/Огляди