Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Почему в QueryAnalyzer'е скрипт работает, а у меня нет?


Страницы:   1 2

Kolan ©   (2007-10-10 09:20:00) 

Здравствуйте,
 Есть скрип. Если его запустить в QueryAnalyzer (MS SQL Server 2000), то он выполняется нормально.

если так:

var
 Query: TADOQuery;
begin
 Result := —1;
 if Assigned(Script) then
 begin
   Query := TADOQuery.Create(nil);
   try
     Result := 0;
     Query.Connection := FDBConnection;
     Query.Prepared := True;
     Query.SQL.Text := Script.ScriptText.Text;
     Query.ExecSQL;
     Result := Query.RowsAffected;
   finally
     Query.Free;
   end;
 end;
end;


Тo выдает ошибку:
Неправильно определен объект Parameter. Предоставлены несовместимые или неполные сведения (EOleException)

Что может быть не так?


Правильный Вася   (2007-10-10 10:35:00) [21]


> Неправильно определен объект Parameter

Query.ParamCheck:=False;


stone   (2007-10-10 10:25:00) [22]


> {…}

А это у тебя что такое?


Kolan   (2007-10-10 10:21:00) [23]

--Created by KSQLServerScriptCreator.--
--Creation date and time: „10.10.2007 10:25:17“--
--Used data base: „Stomatology“--
--Used table: „ExpertAppraisalDefect“--

--Script fot table „ExpertAppraisalDefect“ start.--

DECLARE @ExpertAppraisalDefectTempTable TABLE (cddefect1 int, DefectName1 varchar(250), cdgroup1 int, Factor1 float(8));

INSERT INTO @ExpertAppraisalDefectTempTable(cddefect1, DefectName1, cdgroup1, Factor1)
 VALUES(1, 'Нет описания жалоб', 1, 0.100000001490116);

{…}

INSERT INTO @ExpertAppraisalDefectTempTable(cddefect1, DefectName1, cdgroup1, Factor1)
 VALUES(45, 'Диагноз поставлен не в соответствии с клинической классификацией', 7, 0.100000001490116);

INSERT INTO @ExpertAppraisalDefectTempTable(cddefect1, DefectName1, cdgroup1, Factor1)
 VALUES(46, 'При наличии сопутствующего заболеван. не выставлен соответств. диагноз', 7, 0.025000000372529);

INSERT INTO @ExpertAppraisalDefectTempTable(cddefect1, DefectName1, cdgroup1, Factor1)
 VALUES(47, 'Не применялись современные показанные лечебные технологии  ', 4, 0.25);

SET IDENTITY_INSERT ExpertAppraisalDefect ON;

UPDATE ExpertAppraisalDefect
 SET DefectName = T.DefectName1, cdgroup = T.cdgroup1, Factor = T.Factor1
 FROM @ExpertAppraisalDefectTempTable AS T
 WHERE (cddefect = T.cddefect1);

INSERT INTO ExpertAppraisalDefect(cddefect, DefectName, cdgroup, Factor)
 SELECT cddefect1, DefectName1, cdgroup1, Factor1 FROM @ExpertAppraisalDefectTempTable AS T
 WHERE NOT EXISTS(SELECT * FROM ExpertAppraisalDefect WHERE (cddefect = T.cddefect1))

SET IDENTITY_INSERT ExpertAppraisalDefect OFF;
DBCC CHECKIDENT(ExpertAppraisalDefect, RESEED);

--Script fot table „ExpertAppraisalDefect“ end.--

--Regards to KSoftWare®.--


Маша Шрайбер   (2007-10-10 10:10:00) [24]

Сам текст запроса?


ЮЮ   (2007-10-10 09:58:00) [25]


> Query.Prepared := True;

Это лишнее для запроса вызываемого единожды. Тем более, что текст запроса будет задан только в следующей строке кода


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо