Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.23;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.027 c
7-1081325033
LexaTyukha
2004-04-07 12:03
2004.05.23
Нужно найти и показать окно. Запуск через планировщик при старте.


1-1083871797
Студент_
2004-05-06 23:29
2004.05.23
Свой Object Inspector


3-1083141967
GIL
2004-04-28 12:46
2004.05.23
Обозначение пустоты в поле в SQL-запросе


7-1082125099
Fred Perry
2004-04-16 18:18
2004.05.23
Проблема с WM_INPUTLANGCHANGE


3-1083055177
Term
2004-04-27 12:39
2004.05.23
MIDAS..... помогите разобраться что я намудрил