Текущий архив: 2008.02.03;
Скачать: CL | DM;
ВнизКак всегда SQL :( Найти похожие ветки
← →
Washington © (2008-01-12 11:11) [0]Запрос:
OldData:=DateToStr(MonthCalendar1.Date);
OldPlan:=Label1.Caption;
Data:=DateEdit.Text;
Plan:=PlanEdit.Text;
with ADOQuery1 do
begin
close;
SQL.Clear;
SQL.Add("Update Plans");
SQL.Add("Set Plan=:pPlan and Data=:pData");
SQL.Add("Where Plan=:pOldPlan and Data=:pOldData");
Parameters.ParseSQL(SQL.Text,true);
Prepared:=true;
Parameters.ParamValues["pPlan"]:=Plan;
Parameters.ParamValues["pData"]:=Data;
Parameters.ParamValues["pOldPlan"]:=OldPlan;
Parameters.ParamValues["pOldData"]:=OldData;
ExecSQL;
end;
В поле PlanEdit пишу одно, в результате в таблице Plans в поле Plan записывается -1. Уже все перепровел, что можно было, в чём может быть ошибка? Подскажите плз.
← →
engine © (2008-01-12 11:52) [1]> OldData:=DateToStr(MonthCalendar1.Date);
> OldPlan:=Label1.Caption;
> Data:=DateEdit.Text;
> Plan:=PlanEdit.Text;
> with ADOQuery1 do
> begin
> close;
> SQL.Clear;
> SQL.Add("Update Plans");
> SQL.Add("Set Plan=:pPlan and Data=:pData");
> SQL.Add("Where Plan=:pOldPlan and Data=:pOldData");
> Parameters.ParseSQL(SQL.Text,true);
> Prepared:=true;
> Parameters.ParamValues["pPlan"]:=Plan;
> Parameters.ParamValues["pData"]:=Data;
> Parameters.ParamValues["pOldPlan"]:=OldPlan;
> Parameters.ParamValues["pOldData"]:=OldData;
> ExecSQL;
> end;
Лишние переменные втопку.
SQL.Clear — втопку;
SQL.Add — втопку;
Если вид запроса не меняется, то SQL.Text присваиваем где нибудь вначале а заодно и Prepare, иначе, делаем как показано ниже:with ADOQuery1 do begin
Close;
SQL.Text := "Update Plans Set Plan=:pPlan and Data=:pData Where Plan=:pOldPlan and Data=:pOldData";
Parameters.ParamValues["pPlan"]:=PlanEdit.Text;
Parameters.ParamValues["pData"]:=DateEdit.Text;
Parameters.ParamValues["pOldPlan"]:=Label1.Caption;
Parameters.ParamValues["pOldData"]:=DateToStr(MonthCalendar1.Date);;
ExecSQL;
end;
← →
Washington © (2008-01-12 11:59) [2]сделал - та же фигня.
← →
engine © (2008-01-12 12:12) [3]> [2] Washington © (12.01.08 11:59)
какой тип у поля Plan?
Поставь breakpoint и посмотри значения присваеваемые параметрам.
← →
Washington © (2008-01-12 12:19) [4]Тип поля план - text
← →
Washington © (2008-01-12 12:20) [5]если сделать запрос select с теми же параметрами, результат нормальный, именно update тупит
← →
engine © (2008-01-12 12:21) [6]> [4] Washington © (12.01.08 12:19)
Попробуй перед ExecSqL написать:ShowMessage(Parameters.ParamValues["pPlan"]);
← →
engine © (2008-01-12 12:22) [7]> [5] Washington © (12.01.08 12:20)
Это как??? Непонял
← →
sniknik © (2008-01-12 12:27) [8]> SQL.Clear — втопку;
> SQL.Add — втопку;
ADOQuery1 — втопку;
> Если вид запроса не меняется, то SQL.Text присваиваем где нибудь вначале а заодно и Prepare, иначе, делаем как показано ниже:
вообщето он и здесь не меняется, значения параметров изменяются, запрос нет, т.е. это не "иначе", это, если запрос часто используемый именно и нужно присвоить гденибудь вначале (в десигн) и выполнять после по мере необходимости.
> DateToStr(MonthCalendar1.Date);;
— втопку;
> сделал - та же фигня.
учи SQL, у тебя глюк в присвоении
← →
engine © (2008-01-12 12:35) [9]> вообщето он и здесь не меняется, значения параметров изменяются,
> запрос нет, т.е. это не «иначе», это, если запрос часто
> используемый именно и нужно присвоить гденибудь вначале
> (в десигн) и выполнять после по мере необходимости.
Ну я впринципе тоже самое и имел ввиду
> учи SQL, у тебя глюк в присвоении
вот ведь, а я и не приметил ))
← →
Washington © (2008-01-12 13:13) [10]Забейте, сделал по другому:
удалил старую запись, вставил новую. Всё ОК )
Страницы: 1 вся ветка
Текущий архив: 2008.02.03;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.045 c