|
SQL vs BDE?
Сделал я вот такой запрос.
А он работать не хочет. Все части по отдельности работают, все вместе нет. В DD тоже работает, а вот в дельфе фиг. Есть у меня такое подозрение, что это ограничение делфи или БДЕ на вложенность, т.е. если самую внутренню часть (которая и нехочет работать ктогда все вместе) поднять на уровень вверх, то все работает.
Вопрос собственно в том, как можно обойти это ограничение, или сделать по другому, или в чем вообще тут проблема?
Способы введения дополнительного кода в приложение не предлогать. Надо решить вопрос либо радикально по другому, либо средствами SQL
SQL_Delete.Add('Select * FROM Sostav_Otdelov');
SQL_Delete.Add('WHERE Sostav_Otdelov.Sos_Code=');
SQL_Delete.Add(' (');
SQL_Delete.Add(' SELECT Sostav_otdelov.Sos_Code');
SQL_Delete.Add(' FROM Sostav_Otdelov');
SQL_Delete.Add(' WHERE (Sostav_otdelov.Sos_Otdel_Code=:CurOtdel)');
SQL_Delete.Add(' And (Sostav_otdelov.Sos_Sotrudnik_Code=:CurSotrudnik)');
SQL_Delete.Add(' And (Sostav_otdelov.Sos_Razryad=:CurRazryad)');
SQL_Delete.Add(' And (Sostav_otdelov.Sos_Stavka_Code=');
SQL_Delete.Add(' (');
SQL_Delete.Add(' SELECT Stavki.S_Code');
SQL_Delete.Add(' FROM Stavki');
SQL_Delete.Add(' WHERE (UPPER(TRIM(Stavki.S_Name))=UPPER(TRIM(:CurStavka)))');
SQL_Delete.Add(' ))');
SQL_Delete.Add(' And (Sostav_otdelov.Sos_Dolgnost_Code=');
SQL_Delete.Add(' (');
SQL_Delete.Add(' SELECT Dolgnosti.D_Code');
SQL_Delete.Add(' FROM Dolgnosti');
SQL_Delete.Add(' WHERE (UPPER(TRIM(Dolgnosti.D_Name))=(UPPER(TRIM(:CurDolgnost)))');
SQL_Delete.Add(' ))');
SQL_Delete.Add(' )');
|