|
|
|
дата -> MS SQL
|
|||
|---|---|---|---|
|
#18+
есть переменная вида ldData = CTOT("01.'" + ALLTRIM(STR(THISFORM.Month)) + "." + ALLTRIM(STR(THISFORM.Year))) так вот при INSERT на сервер она сохраняется в виде 01.01.1900 как её лучше преоразовать, чтобы она сохранялась нормально в виде "14.05.2007"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2007, 15:46 |
|
||
|
дата -> MS SQL
|
|||
|---|---|---|---|
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2007, 15:48 |
|
||
|
дата -> MS SQL
|
|||
|---|---|---|---|
|
#18+
ну а тогда почему формат DMY не проходит, если перед этим дать команду серверу lcSQLCommand = "SET DATEFORMAT dmy" = SQLEXEC(h, lcSQLCommand) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2007, 16:01 |
|
||
|
дата -> MS SQL
|
|||
|---|---|---|---|
|
#18+
А при чем тут сервер, если преобразование производится еще до обращения к нему? И какой, кстати, сервер? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2007, 16:06 |
|
||
|
дата -> MS SQL
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. и дата на MS SQL Server сохраняется как 01.01.1900. Почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2007, 16:24 |
|
||
|
дата -> MS SQL
|
|||
|---|---|---|---|
|
#18+
Потому, что ldData получается пустой, а MS SQL server не работает с пустыми датами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2007, 16:25 |
|
||
|
дата -> MS SQL
|
|||
|---|---|---|---|
|
#18+
sorry, кавычки лишние поставил ldData = CTOT("01." + ALLTRIM(STR(THISFORM.Month)) + "." + ALLTRIM(STR(THISFORM.Year))) но сути это не меняет.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2007, 16:26 |
|
||
|
дата -> MS SQL
|
|||
|---|---|---|---|
|
#18+
вот не вижу особой разницы между ldData = CTOD("01." + ALLTRIM(STR(THISFORM.Month)) + "." + ALLTRIM(STR(THISFORM.Year))) и между ldData = DATE(THISFORM.Year, THISFORM.Month, 1) но второй вариант работает.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2007, 16:29 |
|
||
|
дата -> MS SQL
|
|||
|---|---|---|---|
|
#18+
Результат функций CTOT, CTOD зависит от настроек среды исполнения. Мой вариант не зависит ни от чего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2007, 16:32 |
|
||
|
дата -> MS SQL
|
|||
|---|---|---|---|
|
#18+
вот поэтому я сначала и даю команду lcSQLCommand = "SET DATEFORMAT dmy" = SQLEXEC(h, lcSQLCommand) но всё равно.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2007, 16:39 |
|
||
|
дата -> MS SQL
|
|||
|---|---|---|---|
|
#18+
вот поэтому я сначала и даю команду lcSQLCommand = "SET DATEFORMAT dmy" Кому предназначена эта команда? Фоксу или серверу? А преобразование где идет - в фоксе или на сервере? CTOT - фоксовая функция или серверная? Что-нибудь видели в хелпе по фоксу про SET DATEFORMAT ? В каком месте? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2007, 16:48 |
|
||
|
дата -> MS SQL
|
|||
|---|---|---|---|
|
#18+
EndForвот поэтому я сначала и даю команду lcSQLCommand = "SET DATEFORMAT dmy" = SQLEXEC(h, lcSQLCommand) но всё равно.... Потому что надо передвать в формате YMD. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2007, 16:52 |
|
||
|
дата -> MS SQL
|
|||
|---|---|---|---|
|
#18+
авторПотому что надо передвать в формате YMD. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.05.2007, 17:03 |
|
||
|
дата -> MS SQL
|
|||
|---|---|---|---|
|
#18+
EndForесть переменная вида ldData = CTOT("01.'" + ALLTRIM(STR(THISFORM.Month)) + "." + ALLTRIM(STR(THISFORM.Year))) так вот при INSERT на сервер она сохраняется в виде 01.01.1900 как её лучше преоразовать, чтобы она сохранялась нормально в виде "14.05.2007"? Приведите вашу команду INSERT , которая через SQLEXEC добавляет дату на сервер. С уважением, Алексей P.S. Для исключения путаницы с датами, достаточно отсылать ее на сервер в виде строки 'YYYYMMDD' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2007, 07:21 |
|
||
|
дата -> MS SQL
|
|||
|---|---|---|---|
|
#18+
Есть проще велосипед :) Фокс сам все как надо преобразовывает Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2007, 07:37 |
|
||
|
дата -> MS SQL
|
|||
|---|---|---|---|
|
#18+
В итоге я передал на SQL Server дату в формате YMD и все работает, но перед этим пытался в формате DMY (более привычный всё-таки формат) и делал так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. ЗЫ. щас версия MS SQL Server 7, но в 2000 установка SET DATEFORMAT dmy для SQL Server срабатывала и из фокса я уже дату передавал в формате DMY (задачка была только другая)... вот я и задумался, то ли дело в версии, толи лыжи у меня не едут.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2007, 09:43 |
|
||
|
дата -> MS SQL
|
|||
|---|---|---|---|
|
#18+
Да, EndFor, ну и каша у тебя в голове. Не пробовал посмотреть содержимое ldData сразу вот после этой команды? Небось, пустая дата? Код: plaintext И при чем тут Set DATEFORMAT на сервере, если передаешь дату, а не строку, представляющую дату? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2007, 09:54 |
|
||
|
дата -> MS SQL
|
|||
|---|---|---|---|
|
#18+
вобщем да, лыжи у меня не ехали просто.... в выражении типа ldData = CTOD("01." + ALLTRIM(STR(THISFORM.Month)) + "." + ALLTRIM(STR(THISFORM.Year))) напутал с кавычками.... в программе у меня вместо "01" стоит вычисляемая переменная.... вот там и были кавычки лишние... а по сему считаю тему закрытой.... всем спасибо.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2007, 12:22 |
|
||
|
дата -> MS SQL
|
|||
|---|---|---|---|
|
#18+
Невнимательно ты мой пост читал Надо было ? добавить lcSQLCommand = "INSERT INTO table (data) VALUES ( ? ldData)" Так ты подставишь содержимое переменной в запрос ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2007, 14:08 |
|
||
|
дата -> MS SQL
|
|||
|---|---|---|---|
|
#18+
to alex11100 Вот ему как раз и надо было передавать годмесяцдень, а у тебя другой пример. В первой части команда SET DATEFORMATне нужна: ................... * SET DATEFORMAT mdy insert into #tmp_table values(?pdDate) ................... И во второй части тоже не нужна, т.к. dtos(pdDate) = YYYYMMDD ................... * SET DATEFORMAT ydm insert into #tmp_table values('<<dtos(pdDate)>>') ................... И если уж ему нужна была строка, то легче всего было бы передвать в ANSI (а это годмесяцдень). ldData = CTOT(ALLTRIM(STR(THISFORM.Year))+STRTRAN(STR(THISFORM.Month,2),' ','0') + '01') '20070514' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2007, 14:59 |
|
||
|
дата -> MS SQL
|
|||
|---|---|---|---|
|
#18+
qwertyqwerty меня учить не нужно, Вы меня желаете записать в свою религию??? я вообче-та не о том писал, а показал, что фокс сам парсит правильно дату если передать параметром переменную, о чем тут и другие толкуют и вообче-та я написал пример для передачи дататайма pdDate = datetime() sqlexec(lnConnection,lcSqlCmd,'tt') фокспро имеется мощнейший класс для автоматического преобразования типов, который как раз позволяет не творить безумия так, что ..... работаем дальше .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2007, 15:13 |
|
||
|
дата -> MS SQL
|
|||
|---|---|---|---|
|
#18+
2Dima_T в программе в инсёрте у меня всё правильно: там везде как и положено стоят ?.... это здесь в теме выше я просто запарил поставить ?, а в коде они стоят.... в коде перед инсёртом у меня выражение даты из-за неправильно раставленных кавычек принимало пустое выражение.... кавычки поправил и всё ОК.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2007, 16:00 |
|
||
|
дата -> MS SQL
|
|||
|---|---|---|---|
|
#18+
а SQL Server похоже вобщем-то пох в каком формате ему дату отправлять... пробовал и DMY и YMD... получилось и так и так.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2007, 16:03 |
|
||
|
дата -> MS SQL
|
|||
|---|---|---|---|
|
#18+
alex11100qwertyqwerty меня учить не нужно, Вы меня желаете записать в свою религию??? ...................... Обиделся(лись) ... На что интересно? Какая такая своя религия? Поясни(те), я то я именю, а не знаю, что имею ... Здесь поросили конкретной помощи ... а вы написали ... то ли так вы пишете и советуете так сделать, то ли еще чего сказать хотите ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.05.2007, 16:54 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=34526634&tid=1589347]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
62ms |
get tp. blocked users: |
3ms |
| others: | 194ms |
| total: | 356ms |

| 0 / 0 |
