Форум: "Прочее";
Текущий архив: 2011.05.08;
Скачать: [xml.tar.bz2];
ВнизПроблема парсинга TSQLQuery (dbExpress).. Найти похожие ветки
← →
Jeer © (2011-01-27 09:54) [0]с параметрами.
А что, она так и не решена ?
(D7, MS SQL 2000 SP3, Win 2003 srv ent.)
АваСтоп: no value given for one or more required parameters
s := "Abnormal";
i := Random(100000);
with quUpdate, SQL do begin
Clear;
Text := "INSERT INTO TMP(ID, MYNAME) VALUES(:ID,:MY)";
Prepared := True;
ParamByName("ID").AsInteger := i;
ParamByName("MY").AsString := s;
ExecSQL(True);
end;
Норма:
s := "Normal";
i := Random(100000);
with quUpdate, SQL do begin
Clear;
Text := Format("INSERT INTO TMP(ID, MYNAME) VALUES(%d,%s)",[i,QuotedStr(s)]);
ExecSQL(True);
end;
← →
12 © (2011-01-27 10:13) [1]а так?
.Params[XX].AsYYY := ZZ
← →
12 © (2011-01-27 10:19) [2]а скрипт на create table какой
← →
Jeer © (2011-01-27 10:35) [3]
> 12 © (27.01.11 10:13) [1]
>
> а так?
> .Params[XX].AsYYY := ZZ
Пробовал, один фиг.
Да скрипт простейший, тестовый, т.к. напоролся на переносе старого приложения с гораздо более сложными таблицами.
СREATE TABLE [dbo].[TMP] (
[ID] [int] NOT NULL ,
[MYNAME] [char] (50) COLLATE Cyrillic_General_CI_AS NULL
) ON [PRIMARY]
← →
DiamondShark © (2011-01-27 10:38) [4]Зачем вы всё ещё тыкаете палочкой в этого мёртвого монстрика?
← →
Anatoly Podgoretsky © (2011-01-27 10:39) [5]> Jeer (27.01.2011 09:54:00) [0]
Prepared не там
← →
asail © (2011-01-27 10:44) [6]
> 12 © (27.01.11 10:19) [2]
> а скрипт на create table какой
А он тут причем? Вариант с константами же работает.
Я с dbExpress дел не имел давно... Но, помнится, он параметры только с "?" понимает. Или путаю чего?
← →
12 © (2011-01-27 10:46) [7]
> А он тут причем? Вариант с константами же работает.
логично
а если без prepared?
а если prepared перед exec?
← →
Jeer © (2011-01-27 10:58) [8]
> DiamondShark © (27.01.11 10:38) [4]
>
> Зачем вы всё ещё тыкаете палочкой в этого мёртвого монстрика?
>
Переписывать не охота.
> Anatoly Podgoretsky © (27.01.11 10:39) [5]
>
> > Jeer (27.01.2011 09:54:00) [0]
>
> Prepared не там
Я даже его вертикально писал - не вышло. :)
Похоже на несовместимость с текущей версией OLEDB, т.к. dbExpress через него работает с MSSQL.
← →
Jeer © (2011-01-27 11:00) [9]Насчет Prepared - вот тут:
http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/SqlExpr_TSQLQuery_ExecSQL.html
← →
Anatoly Podgoretsky © (2011-01-27 11:05) [10]> Jeer (27.01.2011 10:58:08) [8]
А нет желание убить этого уродика dbExpress?
← →
Jeer © (2011-01-27 11:16) [11]
> Anatoly Podgoretsky © (27.01.11 11:05) [10]
>
> > Jeer (27.01.2011 10:58:08) [8]
>
> А нет желание убить этого уродика dbExpress?
Да есть, но придется переписывать старое приложение (которое работало на старых версиям OLEDB-провайдера).
Либо бросить его на фик :)
← →
Jeer © (2011-01-27 11:59) [12]В общем, нашел устраивающее решение для затычек
Использование вместо TSQLQuery непосредственные возможности ExecSQL у TSQLConnection и выглядит это так:
sSQL := "INSERT INTO TMP (ID,MYNAME ) VALUES (:ID,:MY )";
pars := TParams.Create;
try
pars.CreateParam(ftInteger, "ID", ptInput).AsInteger := 999;
pars.CreateParam(ftString, "MY", ptInput).AsString := "String";
conSource.Execute(sSQL,pars);
sdsPLANS.Close;
sdsPLANS.Open;
finally
pars.Free;
end;
Ну это, понятно, тест.
В реальности будет перебор параметров:
pars[0].AsInteger := 1000;
pars[1].AsString := "String";
← →
Плохиш © (2011-01-27 12:53) [13]Почему бы не использовать TSQLDataset и TSQLCommand?
← →
Jeer © (2011-01-27 15:22) [14]
> Плохиш © (27.01.11 12:53) [13]
>
> Почему бы не использовать TSQLDataset и TSQLCommand?
Он недалеко ушел от TSQLQuery :)
← →
Плохиш © (2011-01-27 16:16) [15]
> Jeer © (27.01.11 15:22) [14]
>
>
> > Плохиш © (27.01.11 12:53) [13]
> >
> > Почему бы не использовать TSQLDataset и TSQLCommand?
>
>
> Он недалеко ушел от TSQLQuery :)
Странно, у меня таких проблем с параметрами не возникало.
PS. Попробуй перед двоеточиями пробел поставить.
← →
Jeer © (2011-01-27 17:02) [16]
> PS. Попробуй перед двоеточиями пробел поставить.
Это все уже опробовано, и перед запятыми тоже.
На платформе win2000 srv таких проблем не было, появились на win2003 srv,
вот с чего и канитель.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2011.05.08;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.004 c