Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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.003 c
2-1296692040
antonn
2011-02-03 03:14
2011.05.08
отложенная загрузка картинки в THTMLViewer/ThtmlLite


2-1296564138
Сергей
2011-02-01 15:42
2011.05.08
Как расширить атрибуты файла?


2-1296650084
Гражданин
2011-02-02 15:34
2011.05.08
Экран


3-1258308297
ДедушкаЛук
2009-11-15 21:04
2011.05.08
Поиск и вывод повторных строчек


15-1295873780
MonoLife
2011-01-24 15:56
2011.05.08
Открыть URL адрес в папке проводника





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский