запрос к fox-DBF через ADO из 1C | |
---|---|
Yason Сообщений: 214 Откуда: Питер Дата регистрации: 03.07.2002 |
Приветствую Вас , Коллеги!
Вот и до меня добралась интеграция с 1c, хоть я и боролся успешно с ней почти 3 года ;) в фоксовую базу затягивать 1с-ные файлы у меня получилось довольно быстро. а вот наоборот застопорил жестко ;) пока осиливаю конфигуратор и синтасис, наилучшим решением мне показалось ;) следующее :
// и вот в самом запросе не получается вставить переменную. //т.е. если я пишу :
// а если хочу поставить выборку по точной дате, которую определяю // переменной dvyb
Как правильно задать в 1С переменную и передать ее в запрос ADO к фоксу ? ps. может я изобретаю велосипед? и все это можно как-то проще слепить? тогда покажите плиз неразумному, как в 1C-синтаксисе (от которого просто на дыбы кидает старого лисовода ) запрос составить по аналогии с нашим "родным" Заранее благодарю. С ув. Игорь. Исправлено 2 раз(а). Последнее : Yason, 17.03.09 19:20 |
Re: запрос к fox-DBF через ADO из 1C | |
---|---|
ssa Сообщений: 13008 Откуда: Москва Дата регистрации: 23.03.2005 |
Откройте для себя коллекцию Paramemters в ADO у бъекта ADODB.Command.
Пример, выдранный из фокса.
------------------ Лень - это неосознанная мудрость. |
Re: запрос к fox-DBF через ADO из 1C | |
---|---|
rubinov Автор Сообщений: 483 Дата регистрации: 07.02.2005 |
dvyb - это же переменная и ее надо передать как параметер. В засасимости от типа переменной, что-то вроде: newtable = DBConn.Execute("Select * from Dogov where Dogov.data == '"+dvyb+"'"); |
Re: запрос к fox-DBF через ADO из 1C | |
---|---|
Yason Сообщений: 214 Откуда: Питер Дата регистрации: 03.07.2002 |
О, спасибо.
с синтаксисом 1c у меня все еще беда. тогда, если можно крайний вопрос по теме : как правильно присвоить переменной дату и эту переменную, типа даты, туда в запрос воткнуть.
ругается на синтаксис фокса. с "плюсами" у меня получилось с числовым значением переменной. С датой нет. подскажите правильное написание с форматом даты. и вобще - можно ли с 1с как у нас в дебаггере посмотреть чему равна переменная, если код заткнулся. Мерси! |
Re: запрос к fox-DBF через ADO из 1C | |
---|---|
Myhailo Сообщений: 750 Дата регистрации: 07.02.2006 |
|
Re: запрос к fox-DBF через ADO из 1C | |
---|---|
Yason Сообщений: 214 Откуда: Питер Дата регистрации: 03.07.2002 |
Спасибо, но на эту строку сообщает:
newtable = DBConn.Execute("Select * from Dogov where Dogov.data == CTOD(["+TRANSFORM<<?>>(dvyb)+"])") {C:\1C\PROB\EXTFORMS\ADO_DBF.ERT(107)}: Функция не обнаружена (TRANSFORM) newtable = DBConn.Execute("Select * from Dogov where Dogov.data == CTOD(["+TRANSFORM(dvyb)+"])"<<?>>) {C:\1C\PROB\EXTFORMS\ADO_DBF.ERT(107)}: Неопознанный оператор |
Re: запрос к fox-DBF через ADO из 1C | |
---|---|
boba Сообщений: 6269 Откуда: Медвежьи озера- Дата регистрации: 26.03.2001 |
ctod тут лишнее в строку пытается вставить дату
|
Re: запрос к fox-DBF через ADO из 1C | |
---|---|
Yason Сообщений: 214 Откуда: Питер Дата регистрации: 03.07.2002 |
Вчера прочел, но не попробовал.
Если не сложно - можно чуть подробнее, как получить для изучения эти параметры? Спасибо. |
Re: запрос к fox-DBF через ADO из 1C | |
---|---|
Yason Сообщений: 214 Откуда: Питер Дата регистрации: 03.07.2002 |
Нет, увы, тоже самое.
Ладно, сдаюсь... Плиз ткните пальцем, где можно прочитать как в этом мегаязыке (1с) правильно расставлять плюсы, кавычки, квадратные скобки и т.д., и в частности что означает "transform" может угадаю что-нить ;) |
Re: запрос к fox-DBF через ADO из 1C | |
---|---|
ssa Сообщений: 13008 Откуда: Москва Дата регистрации: 23.03.2005 |
Что значит получить? Их вроде как передать надо, а не получить? Или я чего-то не понял? Вот еще пример, в том числе с датой:
------------------ Лень - это неосознанная мудрость. |
Re: запрос к fox-DBF через ADO из 1C | |
---|---|
ssa Сообщений: 13008 Откуда: Москва Дата регистрации: 23.03.2005 |
Аргумент DBConn.Execute() - строка. Строка ограничивается двойнsми кавычками. Все, что внутри этой строки. передается серверу и должно быть в его синтаксисе. Так как сервером в данном случае прикидывается фокс, то строка должна быть написана на фоксе. Transform() - функция фокса. Но в предложенном примере она вызвана в 1С при формировании строки запроса и потому не работает. В 1С конвертация в строку происходит функцией Строка(), а не Transform(). Прежде чем вызывать DBConn.Execute(), сформируйте корректную строку запроса. ------------------ Лень - это неосознанная мудрость. Исправлено 2 раз(а). Последнее : ssa, 18.03.09 13:47 |
Re: запрос к fox-DBF через ADO из 1C | |
---|---|
Yason Сообщений: 214 Откуда: Питер Дата регистрации: 03.07.2002 |
простите, недопонял.
Я подумал, что вы дали код чтобы получить материал для изучения того, какие параметры имеет этот механизм. а передать у меня не получается из 1c запрос к фокс-таблице, причем причина как я на данный момент уяснил, в элементарном незнании мной синтаксиса языка 1с. можете дать простой пример как в конструкцию : newtable = DBConn.Execute("Select * from Dogov where Dogov.data == ?"); вставить дату из 1с вместо "?" например переменную ДатаДок = ТекущаяДата(); буду весьма признателен. |
Re: запрос к fox-DBF через ADO из 1C | |
---|---|
Yason Сообщений: 214 Откуда: Питер Дата регистрации: 03.07.2002 |
вот это боле-менее понятно, спасибо.
в моем понимании корректная строка фокса : "Select * from Dogov where Dogov.data == dvyb" где переменой dvyb присвоено значение искомой даты. но в 1с эта конструкция не идет. Даже как аргумент DBConn.Execute() |
Re: запрос к fox-DBF через ADO из 1C | |
---|---|
ssa Сообщений: 13008 Откуда: Москва Дата регистрации: 23.03.2005 |
Она корректная при наличии в фоксе переменной dvyb. Переменной! Откуда она в фоксе возмется? Цитата:Где присвоено? В 1С? А фокс тут при чем? Цитата:Да она нигде не пойдет! Ибо переменная dvyb находится в 1С, а ее пытаются использовать в фоксе. Понятно? Надо сформировать в 1С строку с подставленным значением. Не с переменной, а с подставленным значением переменной. Выполни в 1С:
------------------ Лень - это неосознанная мудрость. |
Re: запрос к fox-DBF через ADO из 1C | |
---|---|
Yason Сообщений: 214 Откуда: Питер Дата регистрации: 03.07.2002 |
Спасибо за терпеливое объяснение. ;)
с вашей помощью, методом научного тыка был получен правильный код !;)
эта конструкция работает. Передает дату и получает выборку по ней. Правда день и месяц меняет местами, но это уже мелочи ;) с этим разберемси ... Еще раз всех благодарю, первая проба 1с-ного кода доведена до логического завершения. С ув. Игорь. |
Re: запрос к fox-DBF через ADO из 1C | |
---|---|
Mitchman Сообщений: 9978 Откуда: Николаев Дата регистрации: 24.05.2002 |
это зависит от национальных настроек - потому так делать не стоит - лучше потрудитесь перед передачей привести дату в такой вид "^ГГГГММДД" где ГГГГ - год ММ - месяц ДД день а ^ есть символ ^ - в этом случае такая строка воспринимается однозначо ------------------ - «свидомые украинцы озабочены не столько созданием украинской культуры, сколько уничтожением русской» - Олесь Бузина |
Re: запрос к fox-DBF через ADO из 1C | |
---|---|
Yason Сообщений: 214 Откуда: Питер Дата регистрации: 03.07.2002 |
да-да, спасибо и вам ;)
такие трудности не пугают, уже все готово ;) |
Re: запрос к fox-DBF через ADO из 1C | |
---|---|
Yason Сообщений: 214 Откуда: Питер Дата регистрации: 03.07.2002 |
извините, напорол...
сейчас поищу правильное решение - исправлю. Исправлено 1 раз(а). Последнее : Yason, 19.03.09 15:53 |
© 2000-2024 Fox Club  |