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

Вниз

Почему не проходит вот такой запрос на update...(MySQL, datetime)   Найти похожие ветки 

 
vegarulez ©   (2007-03-12 20:50) [0]

Првет Всем Мастерам!

Вопрос таков, есть запрос в БД на insert  и на update одной и той же группы полей в бд (Использую MySQL + dbExpress).
insert проходит нормально. А update ругается когда поле, с форматом datetime пытаюсь проапдейтить, на формат записываемого значения.


...
var
x:integer;
...

Begin
 Datamodule2.SQLQuery2.SQL.Add("update `Groups` set `product`=""+ trim(E_group_product.Text) +",`edate`=""+ FormatDateTime("YYYY-MM-DD",Group_EDate.Date) +"",`bdate`=""+ FormatDateTime("YYYY-MM-DD",Group_BDate.Date) +"",`datetime`=""+ FormatDateTime("YYYY-MM-DD hh:mm:ss",TDateTime(Now)) +"" where `id`="+ L_Group_Id.Caption +"");
 Datamodule2.SQLQuery2.ExecSQL();
 Datamodule2.SQLQuery2.SQL.Clear;
 Datamodule2.SQLConnection2.Close;
 Datamodule2.ClientDataSet8.Refresh;
End;

Begin
 Datamodule2.SQLQuery2.SQL.Add("insert into `Groups` (`id`,`product`,`edate`,`bdate`,`datetime`) VALUES(" + L_Group_Id.caption + ",""+ trim(E_group_product.Text) +"",""+ FormatDateTime("YYYY-MM-DD",Group_EDate.Date) +"",""+ FormatDateTime("YYYY-MM-DD",Group_BDate.Date) +"",""+ FormatDateTime("YYYY-MM-DD hh:mm:ss",TDateTime(Now)) +"")");
 Datamodule2.SQLQuery2.ExecSQL();
 Datamodule2.SQLQuery2.SQL.Clear;
 Datamodule2.SQLConnection2.Close;
 Datamodule2.ClientDataSet8.Refresh;
End;


Ошибка при апдейте следующего характера:

"No value for parameter "37:53" where id=1"....

А кажется понял почему выдаётся ошибка (пока писал прозрел ;) )....

Дело в том что при апдейте в формате даты стоит символ "

там получается  "update... "+ formatedate("... тут получается запрос разорвался...хотя смне его тут разрыватьт не надо...,"TDateTime(Now))+"...

Теперь, тогда перефразирую первоначальный вопрос:
Каким символом маскировать в в данном запросе, в нутри запроса, символ " чтобы это был не символ начала\окончания строки, а символ используемой внутри переменной? Подскажите...

З.Ы. Сечас пока писал попробовал "YYYY-MM-DD hh:mm:ss" - не хотит двойные воспринимать и такие `...` тоже не хотит...

З.Ы.Ы. Странно... а инзерт, так пашет, хотя не должен...
фантастика просто :)))


 
Knight ©   (2007-03-12 20:54) [1]

Из моего опыта... не знаю как Мастера... но самое лучшее юзать параметры, тогда с типами, кавычками и прочим никаких проблем.


 
Knight ©   (2007-03-12 20:56) [2]

.. кстати, с ними и запросы читабельнее... :)


 
vegarulez ©   (2007-03-12 21:04) [3]

Это типа так? :

...
var
a:string;
...

a:="YYYY-MM-DD hh:mm:ss";
...
... FormatDateTime(a,...
...

Типа так???

Мысль понята...
но всё же до сути интересно докапаться... как всё же маскировать?
Или может не маскируя можно другие символы использовать...  - служебные, для обозначения этого же символа "


 
Knight ©   (2007-03-12 21:07) [4]

Ага. А кавычка маскируется такой-же кавычкой... или двумя... короче ты потом в них запутаешся... дешевле поставить : ввести параметр и присвоить значения им... :)


 
vegarulez ©   (2007-03-12 21:15) [5]

не...
ты знаешь ни одной не двумя чот не получается...

понимаю что запутаюсь - в этом с тобой поностью согласен. Переменныые использовать куда лучше.
просто охота уже ради интереса узнать, как правильно замаскировать... чтоб знать так сказать... где собака порылась.


 
vegarulez ©   (2007-03-12 21:27) [6]

Даже не...

ошибка даже при использовании переменной таже выдаётся...
что то не понимаю я тогжа в чём дело....

ad:="YYYY-MM-DD";
adt:="YYYY-MM-DD hh:mm:ss";

 Datamodule2.SQLQuery2.SQL.Add("update `Groups` set `product`=""+ trim(E_group_product.Text) +",`edate`=""+ FormatDateTime(ad,Group_EDate.Date) +"",`bdate`=""+ FormatDateTime(ad,Group_BDate.Date) +"",`datetime`=""+ FormatDateTime(adt,TDateTime(Now)) +"" where `id`="1"");

Всё равно ошибка таже появляется...

"No value for parameter "20:03" where id=1"....

*TDateTime(NOW)=00:20:03

Подскажите где тут я ошибся?


 
Knight ©   (2007-03-12 21:39) [7]

А мож он :20:30 .. берёт как параметр 38:20 ?


 
Knight ©   (2007-03-12 21:40) [8]

20:30


 
vegarulez ©   (2007-03-12 21:41) [9]

чтоб уж быть верным, вот такой использую... в предыдущем посте он не правильный.

Datamodule2.SQLQuery2.SQL.Add("update `Groups` set `product`=""+ trim(E_group_product.Text) +",`edate`=""+ FormatDateTime(ad,Group_EDate.Date) +"",`bdate`=""+ FormatDateTime(ad,Group_BDate.Date) +"",`datetime`=""+ FormatDateTime(adt,TDateTime(Now)) +"" where `id`="+ str_int +"");


 
Knight ©   (2007-03-12 21:44) [10]

тут кавычка закрыта?
product=""+ trim(E_group_product.Text) +",


 
vegarulez ©   (2007-03-12 21:44) [11]

Так а почкему тогда hh проходит, а после двоеточия  ему mm:ss не нравятся??? Может просто двоеточие как то не так воспринимается???
Ничего не понимаю...


 
vegarulez ©   (2007-03-12 21:48) [12]

БЛИН!!!
ТОЧНО мать его за ногу... не закрыта... фтом то и вся штука была...

:)))

Закрыл - заработало :)

млин уже совсем ф шары долблюсь.... на 10 раз проверил...  :))) прежде чем постить...

Не... надо идти спать ложится... час ночи даёт о себе знать...
Спасибо.


 
Knight ©   (2007-03-12 21:48) [13]

Вот потому и параметры... никаких кавычек вообще :)



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.04.01;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.036 c
2-1173466376
Riply
2007-03-09 21:52
2007.04.01
FindFirstFile и чтение из файла.


2-1173110211
pasha star
2007-03-05 18:56
2007.04.01
RichEdit add lines down


8-1152596059
zorik
2006-07-11 09:34
2007.04.01
Линии разных стилей толщиной более 1 пиксела


2-1173165804
Sapos
2007-03-06 10:23
2007.04.01
Поиск!


1-1170579638
=User=
2007-02-04 12:00
2007.04.01
FindFirst vs FindfirstFile





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