Главная страница
    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.055 c
2-1200206885
Anion
2008-01-13 09:48
2008.02.03
Проблема запуска Delphi 6


2-1200054973
9899100
2008-01-11 15:36
2008.02.03
MDIchild отобразить модально


2-1200213332
Василий
2008-01-13 11:35
2008.02.03
If


2-1199652100
223001
2008-01-06 23:41
2008.02.03
уважаемые мастера delphi подскажите как сделать кнопку


2-1199495124
bagira
2008-01-05 04:05
2008.02.03
Динамическое создание Label ов





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский