Форум: "Базы";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
ВнизDBExpress -> TSQLConnection -> DBX Error: ... Найти похожие ветки
← →
UE (2004-04-27 14:38) [0]
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 15:54) [1]Взаправду никто не вкурсах?
← →
Johnmen © (2004-04-27 15:59) [2]Убери try и посмотри, какая ошибка.
← →
Соловьев © (2004-04-27 16:01) [3]
> Format("INSERT INTO Report VALUES("%s","%s","%s","%s")"
а как это?
← →
UE (2004-04-27 16:02) [4]Johnmen смеёшся что ли?
а E.Message что по твоему?
← →
UE (2004-04-27 16:03) [5]Соловьев, просто
← →
Johnmen © (2004-04-27 16:05) [6]>UE (27.04.04 16:02) [4]
>Johnmen смеёшся что ли?
>а E.Message что по твоему?
Ну как знаешь...
← →
Соловьев © (2004-04-27 16:05) [7]
> UE (27.04.04 16:03) [5]
попробуй убрать "
← →
UE (2004-04-27 16:08) [8]ну написал
with DataSet do begin
SQLConnection := Connection;
CommandText := "INSERT INTO Report VALUES("TEST","TEST","TEST","TEST")";
ExecSQL;
таже ошибка:
DBX Error: No Mapping for Error Code Found
← →
Соловьев © (2004-04-27 16:09) [9]
> DataSet.Free;
> Connection.Free;
это вообще-то тоже надо занести после except
И почему ты не работаешь через IBX?
← →
Соловьев © (2004-04-27 16:10) [10]
> UE (27.04.04 16:08) [8]
я о другом писал
Format("INSERT INTO Report VALUES(%s,%s,%s,%s)", ["TEST1", "TEST2", "TEST3", "TEST4"]);
← →
UE (2004-04-27 16:29) [11]Соловьев, а что тебе в этом:
Format("INSERT INTO Report VALUES(%s,%s,%s,%s)", ["TEST1", "TEST2", "TEST3", "TEST4"]);
ненравится?
← →
Соловьев © (2004-04-27 16:31) [12]
> UE (27.04.04 16:29) [11]
как раз нравится
← →
UE (2004-04-27 16:31) [13]IBX - не хочу использовать
Хочу использовать dbExpress
← →
Johnmen © (2004-04-27 16:32) [14]>UE
Так...
Уверен, что последовательность, типы и размеры значений совпадают с последовательностью, типами и размерами соотв.полей ?
Существует ли таблица ?
Есть ли права на вставку ?
Соотвествует ли character set ?
...
← →
UE (2004-04-27 16:53) [15]Johnmen
...
да, CommandText := "INSERT INTO Report (RVERSION, RHOST, RUSER, RLOCATION) VALUES("TEST1","TEST2","TEST3","TEST4")"; всё VARCHAR
да,
да,
да, втыкал (ServerCharSet=WIN1251)
← →
UE (2004-04-27 17:09) [16]и всё это тоже херня
делал и
Connection := TSQLConnection.Create(nil);
...
Connection.ExecuteDirect("INSERT INTO Report (RVERSION, RHOST, RUSER, RLOCATION) VALUES("TEST1","TEST2","TEST3","TEST4")");
тоже DBX Error: No Mapping for Error Code Found
а если втыкать DataSetProvider и ClientDataSet, то через ClientDataSet.CommandText всё работает
у есть TSQLConnection.Params, есть ErrorResourceFile= , а что с ним делать?
← →
Johnmen © (2004-04-27 17:21) [17]Проверь соответствие диалекта при подключении и роль, если есть.
А так ошибок нет. Всё должно работать.
← →
Johnmen © (2004-04-27 17:22) [18]>у есть TSQLConnection.Params, есть ErrorResourceFile= , а что с ним делать?
Ничего...
← →
UE (2004-04-27 17:24) [19]юзал и диалект 1 и диалект 3
роли нет
всё равно непашет напямую через TSQLConnection, только через СlientDataSet
← →
Danilka © (2004-04-27 17:25) [20]showmessage(Format("INSERT INTO Report VALUES(%s,%s,%s,%s)", ["TEST1", "TEST2", "TEST3", "TEST4"]));
что вернет?
:))
уверен, что совсем не:
INSERT INTO Report VALUES("TEST1","TEST2","TEST3","TEST4")
:))
← →
Danilka © (2004-04-27 17:26) [21]а вапще, неправильно это. а через параметры правильно. :))
← →
Johnmen © (2004-04-27 17:28) [22]>UE
Я не поленился и попробовал указанный код. ВСЁ РАБОТАЕТ !
← →
Danilka © (2004-04-27 17:31) [23][22] Johnmen © (27.04.04 17:28)
тоже использовал двойные кавычки для строк? и все работает? хм..
← →
UE (2004-04-27 17:32) [24]Danilka
а так ShowMessage(Format("INSERT INTO Report VALUES(%s,%s,%s,%s)", [""TEST1"", ""TEST2"", ""TEST3"", ""TEST4""]));
8)
а что надо через параметры я поимаю просто, уже как только не делал, всё одно : DBX Error: No Mapping for Error Code Found
← →
Danilka © (2004-04-27 17:32) [25]жаль под рукой IB нет чтобы проверить, я-то, наивный, думал что строки нада в одинарных кавычках писать..
← →
Johnmen © (2004-04-27 17:34) [26]>Danilka © (27.04.04 17:31) [23]
Всё соответствующе. И кавычки.
Кстати, двойные - это нормально. Но можно и одинарные..
← →
UE (2004-04-27 17:34) [27]Johnmen - у тебя работает
мля, значит у меня чёто с dbexpress
судя по всему Delphi8 делает нехорошие вещи с установленной D7
8(
← →
YurikGl © (2004-04-27 17:38) [28]Попробуй запусти этот запрос из других программ типа SQLExplorer или IBExpert. Может они что скажут.
← →
Danilka © (2004-04-27 17:40) [29]хм, действительно, если-бы была проблема с синтаксисом, то ошибка была-бы соответсвующая, но, похоже, до сервака дело не доходит, раз ошибка: DBX Error, то-есть, ошибка компонент доступа.
А вообще, какие-нибудь другие запросы до сервака доходят?
А в документашке, что про ошибку: "No Mapping for Error Code Found" написано? а то у меня и dbexpress тоже нету :)
← →
YurikGl © (2004-04-27 17:42) [30]"No Mapping for Error Code Found"
Если я чуть-чуть понимаю английский, то он написал, что у него нет описания для этой ошибки с этим кодом.
← →
UE (2004-04-27 17:47) [31]почему же тогда через СlientDataSet всё пашет?
← →
UE (2004-04-27 17:48) [32]В доке по этому поводу нулём, в инете то же ничего ненашёл пока
← →
UE (2004-04-27 17:49) [33]из IBExpert всё пашет
← →
YurikGl © (2004-04-27 17:50) [34]UE, ошибку прога выдает, а запись, то добавляет или нет?
← →
UE (2004-04-27 17:54) [35]YurikGl
нет, Danilka правильно говорит, ошибка раньше происходит именно при Exec, просто Connected:=true срабатывает нормально,
TSQLConnection.GetTableNames - возвращает названия таблиц
← →
YurikGl © (2004-04-27 18:02) [36]Может CommandType надо заранее прописать?
Сам постоянно делаю подобные вещи через DBExpress. Единственное различие, - при Create говорю self.
← →
UE (2004-04-27 18:04) [37]YurikGl
Какой CommandType? Где? В SQLConnection?
Create(self) в .dpr особо не напишешь 8)
← →
YurikGl © (2004-04-27 18:16) [38]SQLDataSet.CommandType:=ctQuery, но он таков по умолчанию, насколько я помню.
← →
UE (2004-04-27 18:22) [39]YurikGl в курсах, я вообще-то про SQLConnection, SQLDataSet - это так - частность
← →
YurikGl © (2004-04-27 18:32) [40]No Idea :(
Страницы: 1 2 вся ветка
Форум: "Базы";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.042 c