![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DBExpress -> TSQLConnection -> DBX Error: ... [D7, IB6.x]
UE © (2004-04-27 14:38:00)
Uses ... DBXpress, SqlExpr, ...;
...
procedure PostData;
var
Connection: TSQLConnection;
DataSet: TSQLDataSet;
begin
Connection := TSQLConnection.Create(nil);
with Connection do begin
ConnectionName := 'AIDADB';
DriverName := 'INTERBASE';
LibraryName := 'dbexpint.dll';
VendorLib := 'GDS32.DLL';
GetDriverFunc := 'getSQLDriverINTERBASE';
Params.Add('User_Name=SYSDBA');
Params.Add('Password=masterkey');
Params.Add('Database=localhost:C:\db0\AIDALOG.GDB');
LoginPrompt := False;
Open;
end;
DataSet := TSQLDataSet.Create(nil);
with DataSet do begin
SQLConnection := Connection;
CommandText := Format('INSERT INTO Report VALUES("%s","%s","%s","%s")', ['TEST1', 'TEST2', 'TEST3', 'TEST4']);
try
ExecSQL;
except
on E: Exception do begin
writeln(E.Message);
end;
end;
end;
Connection.Close;
DataSet.Free;
Connection.Free;
end;
выполняю, получаю:
E.Message = DBX Error: No Mapping for Error Code Found
что с этим делать?
UE (2004-04-27 19:28:00) [1]Снёс D8 заработало! 8)
UE (2004-04-27 19:04:00) [2]YurikGl
thx!
обязательно воспользуюсь данным советом
YurikGl (2004-04-27 18:44:00) [3]Если чем поможет, то сам я работаю на D7+dbExpress+IB. Добавление записи делаю так. В базе для каждой таблицы прописано по процедуре добавления новой записи у которых входными параметрами являются значения полей новой записи, а выходным параметром является сгенерированный ID. При необходимости добавить новую запись в таблицу, я вызываю с помощью StoredProc нужную процедуру потом, при необходимости, позиционирую курсор на полученный ID-к.
UE (2004-04-27 18:34:00) [4]в VMWare где только D7 установленна
ExecuteDirect нормально срабатывает
Каким же макаром D8 может повлиять на dbExpress в D7?
YurikGl (2004-04-27 18:32:00) [5]No Idea :(
UE (2004-04-27 18:22:00) [6]YurikGl в курсах, я вообще-то про SQLConnection, SQLDataSet - это так - частность
YurikGl (2004-04-27 18:16:00) [7]SQLDataSet.CommandType:=ctQuery, но он таков по умолчанию, насколько я помню.
UE (2004-04-27 18:04:00) [8]YurikGl
Какой CommandType? Где? В SQLConnection?
Create(self) в .dpr особо не напишешь 8)
YurikGl (2004-04-27 18:02:00) [9]Может CommandType надо заранее прописать?
Сам постоянно делаю подобные вещи через DBExpress. Единственное различие, - при Create говорю self.
UE (2004-04-27 17:54:00) [10]YurikGl
нет, Danilka правильно говорит, ошибка раньше происходит именно при Exec, просто Connected:=true срабатывает нормально,
TSQLConnection.GetTableNames - возвращает названия таблиц
YurikGl (2004-04-27 17:50:00) [11]UE, ошибку прога выдает, а запись, то добавляет или нет?
UE (2004-04-27 17:49:00) [12]из IBExpert всё пашет
UE (2004-04-27 17:48:00) [13]В доке по этому поводу нулём, в инете то же ничего ненашёл пока
UE (2004-04-27 17:47:00) [14]почему же тогда через СlientDataSet всё пашет?
YurikGl (2004-04-27 17:42:00) [15]"No Mapping for Error Code Found"
Если я чуть-чуть понимаю английский, то он написал, что у него нет описания для этой ошибки с этим кодом.
Danilka (2004-04-27 17:40:00) [16]хм, действительно, если-бы была проблема с синтаксисом, то ошибка была-бы соответсвующая, но, похоже, до сервака дело не доходит, раз ошибка: DBX Error, то-есть, ошибка компонент доступа.
А вообще, какие-нибудь другие запросы до сервака доходят?
А в документашке, что про ошибку: "No Mapping for Error Code Found" написано? а то у меня и dbexpress тоже нету :)
YurikGl (2004-04-27 17:38:00) [17]Попробуй запусти этот запрос из других программ типа SQLExplorer или IBExpert. Может они что скажут.
Johnmen (2004-04-27 17:34:00) [18]>Danilka © (27.04.04 17:31) [23]
Всё соответствующе. И кавычки.
Кстати, двойные - это нормально. Но можно и одинарные..
UE (2004-04-27 17:34:00) [19]Johnmen - у тебя работает
мля, значит у меня чёто с dbexpress
судя по всему Delphi8 делает нехорошие вещи с установленной D7
8(
Danilka (2004-04-27 17:32:00) [20]жаль под рукой IB нет чтобы проверить, я-то, наивный, думал что строки нада в одинарных кавычках писать..