Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.49 MB
Время: 0.02 c
15-1198582118
Иксик
2007-12-25 14:28
2008.02.03
С Рождеством!


15-1196091261
Космос
2007-11-26 18:34
2008.02.03
Проблема ИИ


15-1198975919
Anatoly Podgoretsky
2007-12-30 03:51
2008.02.03
ASPNET и HyperLink


2-1200113814
Farel
2008-01-12 07:56
2008.02.03
MSWord


15-1198883081
No_Dead
2007-12-29 02:04
2008.02.03
НГ на носу&#133 А будете ли вы в нем что либо менять?