![]() |
| ||
|
|
Новости |
Поиск |
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 17:32:00) [21]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:31:00) [22][22] Johnmen © (27.04.04 17:28)
тоже использовал двойные кавычки для строк? и все работает? хм..
Johnmen (2004-04-27 17:28:00) [23]>UE
Я не поленился и попробовал указанный код. ВСЁ РАБОТАЕТ !
Danilka (2004-04-27 17:26:00) [24]а вапще, неправильно это. а через параметры правильно. :))
Danilka (2004-04-27 17:25:00) [25]showmessage(Format('INSERT INTO Report VALUES(%s,%s,%s,%s)', ['TEST1', 'TEST2', 'TEST3', 'TEST4']));
что вернет?
:))
уверен, что совсем не:
INSERT INTO Report VALUES('TEST1','TEST2','TEST3','TEST4')
:))
UE (2004-04-27 17:24:00) [26]юзал и диалект 1 и диалект 3
роли нет
всё равно непашет напямую через TSQLConnection, только через СlientDataSet
Johnmen (2004-04-27 17:22:00) [27]>у есть TSQLConnection.Params, есть ErrorResourceFile= , а что с ним делать?
Ничего...
Johnmen (2004-04-27 17:21:00) [28]Проверь соответствие диалекта при подключении и роль, если есть.
А так ошибок нет. Всё должно работать.
UE (2004-04-27 17:09:00) [29]и всё это тоже херня
делал и
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= , а что с ним делать?
UE (2004-04-27 16:53:00) [30]Johnmen
...
да, CommandText := 'INSERT INTO Report (RVERSION, RHOST, RUSER, RLOCATION) VALUES("TEST1","TEST2","TEST3","TEST4")'; всё VARCHAR
да,
да,
да, втыкал (ServerCharSet=WIN1251)
Johnmen (2004-04-27 16:32:00) [31]>UE
Так...
Уверен, что последовательность, типы и размеры значений совпадают с последовательностью, типами и размерами соотв.полей ?
Существует ли таблица ?
Есть ли права на вставку ?
Соотвествует ли character set ?
...
Соловьев (2004-04-27 16:31:00) [32]
> UE (27.04.04 16:29) [11]
как раз нравится
UE (2004-04-27 16:31:00) [33]IBX - не хочу использовать
Хочу использовать dbExpress
UE (2004-04-27 16:29:00) [34]Соловьев, а что тебе в этом:
Format('INSERT INTO Report VALUES(%s,%s,%s,%s)', ['TEST1', 'TEST2', 'TEST3', 'TEST4']);
ненравится?
Соловьев (2004-04-27 16:10:00) [35]
> UE (27.04.04 16:08) [8]
я о другом писал
Format('INSERT INTO Report VALUES(%s,%s,%s,%s)', ['TEST1', 'TEST2', 'TEST3', 'TEST4']);
Соловьев (2004-04-27 16:09:00) [36]
> DataSet.Free;
> Connection.Free;
это вообще-то тоже надо занести после except
И почему ты не работаешь через IBX?
UE (2004-04-27 16:08:00) [37]ну написал
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:05:00) [38]
> UE (27.04.04 16:03) [5]
попробуй убрать "
Johnmen (2004-04-27 16:05:00) [39]>UE (27.04.04 16:02) [4]
>Johnmen смеёшся что ли?
>а E.Message что по твоему?
Ну как знаешь...
UE (2004-04-27 16:03:00) [40]Соловьев, просто