Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.02.03;
Скачать: [xml.tar.bz2];

Вниз

Как всегда 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.043 c
15-1198740333
Darvin
2007-12-27 10:25
2008.02.03
Запуск русифицированной программы на локализованной Windows


15-1198841749
Девушка
2007-12-28 14:35
2008.02.03
Терминал


15-1198436072
No_Dead
2007-12-23 21:54
2008.02.03
Не могу определиться, что выбрать:(


15-1198146235
antonn (work)
2007-12-20 13:23
2008.02.03
хочу raid1


2-1199828877
Артем
2008-01-09 00:47
2008.02.03
Edit.Text преобразовать в WideString





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский