|
Варианты проверки ДАТЫ введённой пользователем?
|
|||
---|---|---|---|
#18+
Здравствуйте! О себе: В VFP перешёл из Access по "нужде" недавно, поэтому хочется узнать об этом языке побольше и побыстрее. Что имеем: Имеется форма, на форме текстовое поле в которое должна быть введена ДАТА. Содержымое этого поля будет позже добавленно с помощью SQL в таблицу на SQL-Server (ну это так, неважно) Вопрос: Какие по вашему мнению есть варианты "Защиты от дурака". Хочется узнать самый простой способ как разрешить пользователю введение только "правильной" ДАТЫ? Пример: 00.01.2001 = ошибка формата вавыфавы = ошибка формата 01.01.001 = ошибка формата В Access это решено простой устоновкой "свойства" Format в положение Datum. В VFP установка свойства TextBox.Format = D не даёт желаемого результата! ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2010, 12:10 |
|
Варианты проверки ДАТЫ введённой пользователем?
|
|||
---|---|---|---|
#18+
DeRus, Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2010, 12:12 |
|
Варианты проверки ДАТЫ введённой пользователем?
|
|||
---|---|---|---|
#18+
DeRus будет позже добавленно с помощью SQL в таблицу на SQL-Server (ну это так, неважно) а почему неважно? натяни курсор из источника, вставь пустую запись, привяжи контролы к полям курсора вот и будет тебе контрол, привязанный к полю-дате. затем можно будет изм-я произвед-е в курсоре сохранить на сервер и автоматом сгенерить на сервер команду, при условии использования спец.класса - курсорадаптер (при желании и усердии). ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2010, 12:19 |
|
Варианты проверки ДАТЫ введённой пользователем?
|
|||
---|---|---|---|
#18+
проходящий.DeRus, Код: plaintext
Спасибо за быстрый ответ! Действительно помогает! Я думаю проще этого варианта уже ничего не найти, поэтому тему можно закрывать! То что ты предлагаешь на счёт курсора это уже "заморочки" над которыми надо немного дольше сидеть и которые приводят к такомуже результату что и первый предложенный табой вариант сделанный за 30 сек. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2010, 12:30 |
|
Варианты проверки ДАТЫ введённой пользователем?
|
|||
---|---|---|---|
#18+
DeRusТо что ты предлагаешь на счёт курсора это уже "заморочки" над которыми надо немного дольше сидеть и которые приводят к такомуже результату что и первый предложенный табой вариант сделанный за 30 сек. ага, покажи как будешь конструировать строку(код, выполняемый на сервере) и пихать данные взад на сервер. причем это будет не одна строка. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2010, 12:41 |
|
Варианты проверки ДАТЫ введённой пользователем?
|
|||
---|---|---|---|
#18+
Что то меня теперь ещё один вопросик заинтересовал... Есть ли у кого варинты кода (ДатеПикер) ну вообщем вариант там где пользователь просто указывает на ДАТУ и она присваевается полю? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2010, 12:47 |
|
Варианты проверки ДАТЫ введённой пользователем?
|
|||
---|---|---|---|
#18+
DeRus, поищите по слову "календарь". На сайте фоксклуба этих календарей несколько видов. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2010, 12:48 |
|
Варианты проверки ДАТЫ введённой пользователем?
|
|||
---|---|---|---|
#18+
вариант ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2010, 12:57 |
|
Варианты проверки ДАТЫ введённой пользователем?
|
|||
---|---|---|---|
#18+
прошелмимопокажи как будешь конструировать строку(код, выполняемый на сервере) и пихать данные взад на сервер. Установка соединения: Код: 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.
Пихание: Код: 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.
То что ты предлагаешь с курсором, у тебя есть кокой нибудь пример кода? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2010, 13:00 |
|
Варианты проверки ДАТЫ введённой пользователем?
|
|||
---|---|---|---|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
то, что Вы показали, я называю - "закат солнца" вручную, причем в стиле "жесткого садомазо". для "автоматического заката" в фокспро разработчики придумали спец.базовый класс, называется - курсорадаптер (поиском в данном форуме). ищите примеры и играйтесь. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2010, 13:28 |
|
Варианты проверки ДАТЫ введённой пользователем?
|
|||
---|---|---|---|
#18+
прошелмимо Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
то, что Вы показали, я называю - "закат солнца" вручную, причем в стиле "жесткого садомазо". для "автоматического заката" в фокспро разработчики придумали спец.базовый класс, называется - курсорадаптер (поиском в данном форуме). ищите примеры и играйтесь. 2Прошелмимо: Не в укор вам сообщу, что высказались вы, как обычно, громко, но абсолютно не объяснили человеку преимуществ собственного подхода. 2DeRus Господин прошелмимо имеет в виду, что при правильной настройке курсор-адаптера весь этот мегаобъем кода заменяется, по идее, всего на одну строчку: Код: plaintext 1.
PS: В вашем коде не обрабатывается ситуация с наличием кавычек, одинарных кавычек и прочих спецсимволов в вводимых полях. Эта обработка еще на порядок увеличит размер вашего кода. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2010, 13:39 |
|
Варианты проверки ДАТЫ введённой пользователем?
|
|||
---|---|---|---|
#18+
+ неописуемое ощущение восторга будет в случае ввода пользователем значения для строки аля cPar09: О'Генри и поверь это не один из возможных багов "ручного заката", тогда как "автоматический закат" позволяет даже делитанту обойти эти подводные камушки. так, что: читайте, думайте, анализируйте. выбор стратегии разработки за вами. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2010, 13:42 |
|
Варианты проверки ДАТЫ введённой пользователем?
|
|||
---|---|---|---|
#18+
автор2Прошелмимо: Не в укор вам сообщу, что высказались вы, как обычно, громко, но абсолютно не объяснили человеку преимуществ собственного подхода. успокойся, я еще и подхода никакого не рассказал и не объяснял ничего, просто открыл рот и сказал: опа попа. пусть сам грызет материал и делает свой выбор. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2010, 13:44 |
|
Варианты проверки ДАТЫ введённой пользователем?
|
|||
---|---|---|---|
#18+
DeRus, на всякий случай несколько замечаний (1) Когда делается настройка Код: plaintext
то это "сигнал" FoxPro о том, что содержимое данного TextBox имеет тип данных Date. Как следствие, конструкция Код: plaintext
Вызовет сообщение о несовместимости типов аргументов. Функция AllTrim() ожидает значение символьного типа, а получает значение типа Date. (2) Существует несколько вариантов задания константы типа DateTime для MS SQL сервера. Однако универсальным является формат вида 'ГГГГММДД' Т.е. символьная строка без разделителей, где первые 4 символа - год, следующие 2 символа - месяц и последние 2 символа - день. В FoxPro сделать подобное преобразование даты можно двумя способами Код: plaintext 1. 2.
Другими словами, формирование строки для передачи константы даты в MS SQL примет вид Код: plaintext
(3) Существует возможность не заморачиваться с трансформацией значений в символьное представление, а передать переменную FoxPro в строку команды на SQL сервер в виде параметра. Это делает при помощи символа вопросительного знака. Примерно так Код: plaintext 1. 2. 3.
Все что следует за символом вопросительного знака интепретируется как параметр, значение которого надо взять из переменных FoxPro. При этом конвертация в нужный формат произойдет автоматически. Ничего специально преобразовывать не надо. (4) Ну, и то, что Вам посоветовали. Вместо работы с переменными делать обновляемые представления. На основе класса CursorAdapter или Remote View. Это позволит решить часть проблем по формированию команд, отправляемых на сервер. Да и с типами данных будет проще. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2010, 14:19 |
|
Варианты проверки ДАТЫ введённой пользователем?
|
|||
---|---|---|---|
#18+
прошелмимо[src]для "автоматического заката" в фокспро разработчики придумали спец.базовый класс, называется - курсорадаптер (поиском в данном форуме). ищите примеры и играйтесь. Значится буду искать... Я сначало подумал что вы имеете ввиду SQL-Команду Create Cursor, а аказывается что в VFP имеется Класс CursorAdapter: Поддерживает обработку широкого ряда источников данных, как если бы они были родными курсорами Visual FoxPro. Хотя мне хватит и то что я сделал! Моим заданием было создание формы для ввода данных, формуляр будет позже добавлен к проекту. Но ради интереса думаю стоит посмотреть что вышеупомянутый класс сабой представляет. Kruchinin PahanPS: В вашем коде не обрабатывается ситуация с наличием кавычек, одинарных кавычек и прочих спецсимволов в вводимых полях. Эта обработка еще на порядок увеличит размер вашего кода. Что косается ковычек, то в моём случае такая проверка не нужна, так как 9 полей численного типа и 1 поле типа ДАТА ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2010, 14:26 |
|
Варианты проверки ДАТЫ введённой пользователем?
|
|||
---|---|---|---|
#18+
DeRusНо ради интереса думаю стоит посмотреть что вышеупомянутый класс сабой представляет. для поиграться (там ридми и скриптик на создание табличек). потом при наличии вопросов и желания общаться - задать оные. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2010, 14:43 |
|
|
start [/forum/topic.php?fid=41&fpage=99&tid=1585325]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
29ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
78ms |
get tp. blocked users: |
1ms |
others: | 339ms |
total: | 485ms |
0 / 0 |