Это управляло мной безумный в течение прошлых нескольких дней и не могло обойти его, но наконец поняло его:
В моем machine.config файле у меня была запись под <system.web>
:
<deployment retail="true" />
Это, кажется, переопределяет любые другие customError настройки, которые Вы определили в web.config файле, таким образом установив вышеупомянутую запись в:
<deployment retail="false" />
теперь средства, что я могу еще раз видеть подробные сообщения об ошибках, что я должен.
Эти machine.config
расположен в [1 110]
32-разрядный
%windir%\Microsoft.NET\Framework\[version]\config\machine.config
64-разрядный
%windir%\Microsoft.NET\Framework64\[version]\config\machine.config
Hope, которая помогает кому-то там и сохраняет несколько часов получения по запросу волос.
Взгляните на Gold Parser. Доступна версия Delphi и грамматика SQL на странице загрузки.
Парсеры SQL сложны.
Вы думали о таком подходе:
см. этот пример (PostgreSQL):
=> begin;
BEGIN
=> create view testview as select foo,bar from a join b on a.x=b.y;
ERROR: relation "a" does not exist
LINE 1: create view testview as select foo,bar from a join b on a.x=...
^
=> rollback;
ROLLBACK
или этот (Oracle):
SQL> create view testview as select foo,bar from a join b on a.x=b.y;
create view testview as select foo,bar from a join b on a.x=b.y
*
ERROR at line 1:
ORA-00942: table or view does not exist
SQL> rollback;
Rollback complete.
Вы можете использовать Delphi с ADODB.
Используйте TADOQuery, чтобы проверить правильность вашего запроса или нет, не открывая набор записей. Вы также можете получить имена полей запроса.
Перетащите TADOConnection в форму. Отбросьте TMemo и TButton и попробуйте этот код:
procedure TForm1.Button1Click(Sender: TObject);
var
lADOQuery : TADOQuery;
lFieldNames : TStrings;
begin
lADOQuery := TADOQuery.Create(nil);
try
lADOQuery.Connection := ADOConnection1;
lADOQuery.SQL.Text := Memo1.Text;
lFieldNames := TStringList.create;
try
lADOQuery.GetFieldNames(lFieldNames);
showmessage(lFieldNames.Text); // Show fieldNames of the query
// To show that the dataset is not actually opened try this :
// Throws an exception ( Dataset closed )
//showmessage(inttostr( lADOQuery.RecordCount ));
except
On e: Exception do
ShowMessage('Invalid query');
end;
lFieldNames.free;
finally
lADOQuery.free;
End;
end;