![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Почему в QueryAnalyzer'е скрипт работает, а у меня нет?
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;
Это лишнее для запроса вызываемого единожды. Тем более, что текст запроса будет задан только в следующей строке кода