Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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 :(


 
UE   (2004-04-27 18:34) [41]

в VMWare где только D7 установленна
ExecuteDirect нормально срабатывает
Каким же макаром D8 может повлиять на dbExpress в D7?


 
YurikGl ©   (2004-04-27 18:44) [42]

Если чем поможет, то сам я работаю на D7+dbExpress+IB. Добавление записи делаю так. В базе для каждой таблицы прописано по процедуре добавления новой записи у которых  входными параметрами являются значения полей новой записи, а выходным параметром является сгенерированный ID. При необходимости добавить новую запись в таблицу, я вызываю с помощью StoredProc нужную процедуру потом, при необходимости, позиционирую курсор на полученный ID-к.


 
UE   (2004-04-27 19:04) [43]

YurikGl
thx!
обязательно воспользуюсь данным советом


 
UE   (2004-04-27 19:28) [44]

Снёс D8 заработало! 8)



Страницы: 1 2 вся ветка

Форум: "Базы";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.55 MB
Время: 0.032 c
7-1081378840
nec
2004-04-08 03:00
2004.05.23
Чтение и запись в COM-порт в Win XP/NT


1-1083828107
xman
2004-05-06 11:21
2004.05.23
Запуск моей программы


4-1080995477
Yozh_Programmer
2004-04-03 16:31
2004.05.23
Какое сообщение юзать?


1-1084032791
SergeyM
2004-05-08 20:13
2004.05.23
String to Char


3-1083154655
Slon_SCG
2004-04-28 16:17
2004.05.23
Кто-нибудь пробовал восстанавливать удаленные записи?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский