Форум: "Базы";
Текущий архив: 2005.09.04;
Скачать: [xml.tar.bz2];
ВнизОшибка в выполнении запроса: но почему??? FireBird 1.5 Найти похожие ветки
← →
Koala © (2005-07-22 11:41) [0]второй час бьюсь... не могу понять, почему?
SQLCode = -303
IBErrorCode = 335544569
IBMessage:
Ошибка динамического SQL.
код ошибки SQL = -303.
ошибка преобразования из строки "АИ-95".CREATE PROCEDURE PR_INSERT_FUEL_BORDEREAU (
IN_TRAVEL_ID_FFUEL INTEGER,
IN_SPEEDOMETER_ENT INTEGER,
IN_SPEEDOMETER_END INTEGER,
IN_SPEEDOMETER_RESULT INTEGER,
IN_SPEEDOMETER_CITY INTEGER,
IN_SPEEDOMETER_ROUTE INTEGER,
IN_FUEL_ENT NUMERIC(5,1),
IN_FUEL_END NUMERIC(5,1),
IN_FUEL_CITY NUMERIC(5,1),
IN_FUEL_ROUTE NUMERIC(5,1),
IN_FUEL_RESULT NUMERIC(5,1),
IN_RECEIVED_FUEL NUMERIC(5,1),
IN_RECEIVED_TYPE_FUEL VARCHAR(10)))
AS
BEGIN
INSERT INTO TBL_FUEL_BORDEREAU (
TRAVEL_ID_FFUEL,
SPEEDOMETER_ENT,
SPEEDOMETER_END,
SPEEDOMETER_RESULT,
SPEEDOMETER_CITY,
SPEEDOMETER_ROUTE,
FUEL_ENT,
FUEL_END,
FUEL_CITY,
FUEL_ROUTE,
FUEL_RESULT,
RECEIVED_FUEL,
RECEIVED_TYPE_FUEL,
DATE_EDIT)
VALUES (
:IN_TRAVEL_ID_FFUEL,
:IN_SPEEDOMETER_ENT,
:IN_SPEEDOMETER_END,
:IN_SPEEDOMETER_RESULT,
:IN_SPEEDOMETER_CITY,
:IN_SPEEDOMETER_ROUTE,
:IN_FUEL_ENT,
:IN_FUEL_END,
:IN_FUEL_CITY,
:IN_FUEL_ROUTE,
:IN_FUEL_RESULT,
:IN_RECEIVED_FUEL,
:IN_RECEIVED_TYPE_FUEL,
"NOW");
END
вызываю из др. процедуры так:
EXECUTE PROCEDURE PR_INSERT_FUEL_BORDEREAU(
:VAR_TRAVEL_ID,
:VAR_SPEEDOMETER_ENT,
:VAR_SPEEDOMETER_END,
:IN_SPEEDOM_RESULT,
:IN_SPEEDOM_CITY,
:IN_SPEEDOM_ROUTE,
:VAR_FUEL_ENT,
:VAR_FUEL_END,
:IN_FUEL_CITY,
:IN_FUEL_ROUTE,
:IN_FUEL_RESULT,
:IN_RECEIVED_FUEL,
:IN_RECEIVED_FUEL_TYPE);
в программе вызываю storedProcedure:
try
StartTransact;
with sp_InsTemp do
begin
if not Prepared then Prepare;
Params[1].AsInteger := ...;
........
Params[8].AsString := Trim(cb_TypeFuel.Text);
ExecProc;
end;
trWrite.Commit;
except;
trWrite.Rollback;
end;
← →
Johnmen © (2005-07-22 11:46) [1]А где Params[0] ???
Вообще советую почитать про индексацию массивов и списков.
← →
Koala © (2005-07-22 11:49) [2]
> Johnmen © (22.07.05 11:46)
> А где Params[0] ???
>
> Вообще советую почитать про индексацию массивов и списков.
Это я знаю....
когда писал ошибся не ту строку стер.... суть проблемы не в этом....
← →
Johnmen © (2005-07-22 11:55) [3]Проблема в несоотвествии значений параметров их типам.
А где это соответствие, ты не приводишь.
← →
ЮЮ © (2005-07-22 12:07) [4]Params[8].AsString := Trim(cb_TypeFuel.Text);
восьмой параметр в процедуре
IN_FUEL_CITY NUMERIC(5,1)
← →
Koala © (2005-07-22 12:19) [5]привожу полный код процедуры которая вызывается
CREATE PROCEDURE PR_SAVE_DATE (
IN_ID_TEMP INTEGER,
IN_SPEEDOM_CITY INTEGER,
IN_SPEEDOM_RESULT INTEGER,
IN_SPEEDOM_ROUTE INTEGER,
IN_FUEL_CITY NUMERIC(5,1),
IN_FUEL_ROUTE NUMERIC(5,1),
IN_FUEL_RESULT NUMERIC(5,1),
IN_RECEIVED_FUEL NUMERIC(5,1),
IN_RECEIVED_FUEL_TYPE VARCHAR(10)) - восьмой параметр
AS
DECLARE VARIABLE VAR_NUM_RECORD SMALLINT;
DECLARE VARIABLE VAR_TRAVEL_ID INTEGER;
DECLARE VARIABLE VAR_CLIENT_ID INTEGER;
DECLARE VARIABLE VAR_BUSINESS_TRIP INTEGER;
DECLARE VARIABLE VAR_TIME_ENT TIMESTAMP;
DECLARE VARIABLE VAR_TIME_END TIMESTAMP;
DECLARE VARIABLE VAR_TIME_USAGE VARCHAR(8);
DECLARE VARIABLE VAR_MINUTES INTEGER;
DECLARE VARIABLE VAR_SPEEDOMETER_ENT INTEGER;
DECLARE VARIABLE VAR_SPEEDOMETER_END INTEGER;
DECLARE VARIABLE VAR_SPEEDOMETER_RESULT INTEGER;
DECLARE VARIABLE VAR_FUEL_ENT NUMERIC(5,1);
DECLARE VARIABLE VAR_FUEL_END NUMERIC(5,1);
BEGIN
BEGIN
FOR
SELECT TBL_TEMP.TRAVEL_ID, TBL_TEMP.CLIENT_ID,
TBL_TEMP.BUSINESS_TRIP, TBL_TEMP.TIME_ENT, TBL_TEMP.TIME_END,
TBL_TEMP.TIME_USAGE, TBL_TEMP.MINUTES, TBL_TEMP.SPEEDOMETER_ENT,
TBL_TEMP.SPEEDOMETER_END, TBL_TEMP.SPEEDOMETER_RESULT
FROM TBL_TEMP
WHERE ((TBL_TEMP.TRAVEL_ID = :IN_ID_TEMP))
ORDER BY TBL_TEMP.NUM_RECORD
INTO :VAR_TRAVEL_ID,
:VAR_CLIENT_ID,
:VAR_BUSINESS_TRIP,
:VAR_TIME_ENT,
:VAR_TIME_END,
:VAR_TIME_USAGE,
:VAR_MINUTES,
:VAR_SPEEDOMETER_ENT,
:VAR_SPEEDOMETER_END,
:VAR_SPEEDOMETER_RESULT
DO
BEGIN
SUSPEND;
EXECUTE PROCEDURE PR_INSERT_CARD_CUSTOMER(
:VAR_TRAVEL_ID,
:VAR_CLIENT_ID,
:VAR_TIME_ENT,
:VAR_TIME_END,
:VAR_TIME_USAGE,
:VAR_MINUTES,
:VAR_SPEEDOMETER_ENT,
:VAR_SPEEDOMETER_END,
:VAR_SPEEDOMETER_RESULT,
:VAR_BUSINESS_TRIP);
END
END
BEGIN
FOR
SELECT FIRST 1 TBL_TEMP.SPEEDOMETER_ENT, TBL_TEMP.FUEL_ENT,
TBL_TEMP.NUM_RECORD
FROM TBL_TEMP
WHERE ((TBL_TEMP.TRAVEL_ID = :IN_ID_TEMP))
ORDER BY TBL_TEMP.NUM_RECORD
INTO :VAR_SPEEDOMETER_ENT,
:VAR_FUEL_ENT,
:VAR_NUM_RECORD
DO SUSPEND;
END
BEGIN
FOR
SELECT FIRST 1 TBL_TEMP.SPEEDOMETER_END, TBL_TEMP.FUEL_END,
TBL_TEMP.NUM_RECORD
FROM TBL_TEMP
WHERE ((TBL_TEMP.TRAVEL_ID = :IN_ID_TEMP))
ORDER BY TBL_TEMP.NUM_RECORD DESC
INTO :VAR_SPEEDOMETER_END,
:VAR_FUEL_END,
:VAR_NUM_RECORD
DO SUSPEND;
END
EXECUTE PROCEDURE PR_INSERT_FUEL_BORDEREAU(
:VAR_TRAVEL_ID,
:VAR_SPEEDOMETER_ENT,
:VAR_SPEEDOMETER_END,
:IN_SPEEDOM_RESULT,
:IN_SPEEDOM_CITY,
:IN_SPEEDOM_ROUTE,
:VAR_FUEL_ENT,
:VAR_FUEL_END,
:IN_FUEL_CITY,
:IN_FUEL_ROUTE,
:IN_FUEL_RESULT,
:IN_RECEIVED_FUEL,
:IN_RECEIVED_FUEL_TYPE);
EXECUTE PROCEDURE PR_DELETE_TEMP(:IN_ID_TEMP);
end
← →
dmitry501 © (2005-07-22 12:25) [6]Перед строкой
Params[8].AsString := Trim(cb_TypeFuel.Text);
вставь строкуParams[8].DataType := ftString;
Про это написал Johnmen © в [3]
Или передавай такParams[8].AsString := QuotedStr(Trim(cb_TypeFuel.Text));
но это криво
← →
Koala © (2005-07-22 12:37) [7]
> dmitry501 © (22.07.05 12:25)
> Params[8].AsString := QuotedStr(Trim(cb_TypeFuel.Text));
> но это криво
все равно та же ошибка.....
← →
Koala © (2005-07-22 12:47) [8]Хотя в IBExperte на прогонке все нормально.....
← →
Koala © (2005-07-22 12:51) [9]Старнно...
удалил из DataModule TFibStoredProc которую вызывал, и создал новую все заработало.....
Всем спасибо....
-----------------------------
бред какай-то....??????
← →
Johnmen © (2005-07-22 13:22) [10]Ничего странного. Менял процедуру после начала "использования" TFibStoredProc.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2005.09.04;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.011 c