karuzo
09.01.13
✎
11:36
есть: документ направление, резвизит тч которого «источник» содержит ссылку на документ «накладная». Создаю произвольную форму, табчасть — динамический список формируемый произвольным запросом.
ВЫБРАТЬ
Напр.Ссылка.Дата КАК Дата,
Напр.Ссылка.Направление,
Напр.Источник.Контрагент
ИЗ
Документ.Направление.Накладные КАК Напр
Указана группировка по дате сдопорлнением день и по направлению. Отображение — дерево. Результат: дерево формируется, при раскрытии нижнего уровня ошибка:
Ошибка в запросе набора данных
по причине:
{(6, 7)}: Поле не найдено «Напр.ПометкаУдаления»
Напр.<<?>>ПометкаУдаления,
Откуда, зачем, почему — в запросе нет Напр.ПометкаУдаления?
karuzo
09.01.13
✎
12:05
Что добавить к этой печальной повести? Ну, управляемое приложение. В случае, когда убираю Дату из запроса и группировку — оставляю только группировку по направлению , «Поле не найдено «Напр.Дата»»
Vladimirr
09.01.13
✎
12:08
(0) Добавь в запрос в выбранные поля сам документ.
karuzo
09.01.13
✎
12:13
(2) не понял
Mort
09.01.13
✎
12:13
Основная таблица установлена?
Vladimirr
09.01.13
✎
12:16
(3) в Выборку сама Ссылка не попадает
karuzo
09.01.13
✎
12:16
(4) Да, Документ.Направление
Mort
09.01.13
✎
12:18
(6) А чего тада ожидал? Даже если добавишь стандартные реквизиты в запрос, он не будет обеспечивать уникальность записей.
karuzo
09.01.13
✎
12:18
(5) добавил — без изменений
karuzo
09.01.13
✎
12:24
(7) не хватает «тебе нужно …» )
acsent
09.01.13
✎
12:26
ну так добавь нужные поля в запрос
karuzo
09.01.13
✎
12:28
добавляю поле Напр.ПометкаУдаления
теперь ошибка гласит
Ошибка при выполнении запроса. Ошибка при выполнении запроса.
по причине:
Ошибка получения информации набора данных
по причине:
Ошибка в запросе набора данных
по причине:
{(7, 7)}: Поле не найдено «Напр.ПометкаУдаления»
Напр.<<?>>ПометкаУдаления КАК ПометкаУдаления1,
Vladimirr
09.01.13
✎
12:30
(11) засунь запрос в консоль запросов и там его отладь, чтобы были все поля и все работало. Потом уже подсовывай его в динамический список
karuzo
09.01.13
✎
12:32
сую
Mort
09.01.13
✎
12:40
Убери основную таблицу. Тока без ключей обслуживать добавление и открытие нужно будет вручную.
acsent
09.01.13
✎
12:41
Напр.Ссылка.ПометкаУдаления
acsent
09.01.13
✎
12:41
ты руками чтоли запрос пишешь?
Mort
09.01.13
✎
12:42
(12),(15) Следующая ветка автора будет «почему у меня глюки в дин списке, выводятся кучи одинаковых записей и т.п.»
karuzo
09.01.13
✎
12:46
(14) без основной таблицы недоступна группировка — как в этом случае сделать дерево?
(16)нет
Mort
09.01.13
✎
12:49
Тада на ДС придется подзабить.
Нужно скатать базу с методички и сделать какие-то запросы. Базу с горем пополам скатал. Начал в конфигураторе по урокам вводить запрос:
ВЫБРАТЬ
РаботникиОрганизаций.Период,
РаботникиОрганизаций.Регистратор,
РаботникиОрганизаций.Сотрудник,
РаботникиОрганизаций.Организация,
РаботникиОрганизаций.ЗанимаемыхСтавок,
РаботникиОрганизаций.ПодразделениеОрганизации,
РаботникиОрганизаций.Должность
ИЗ
РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
ГДЕ
РаботникиОрганизаций.ПричиныИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.ПриемНаРаботу)
Ошибка получения информации набора данных
по причине:
Ошибка в запросе набора данных
по причине:
{(10, 9)}: Таблица не найдена «РегистрСведений.РаботникиОрганизаций»
<<?>>РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
1С:Предприятие 8.3 (8.3.9.2170)
Конфигурация:
Бухгалтерия предприятия (учебная), редакция 3.0 (3.0.30.16) (http://v8.1c.ru/buhv8/)
Copyright (С) ООО «1C», 2009 — 2014. Все права защищены
(http://www.1c.ru)
ВЫБРАТЬ ЗаказКлиентаТовары.Номенклатура, Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки( Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары Ошибка при выполнении запроса. Ошибка при выполнении запроса. по причине: {(1, 20)}: Поле не найдено «ЗаказКлиентаТовары.Дата» ЗаказКлиентаТовары.<<?>>Дата Подскажите, плиз, что не так не пойму
Точно этот запрос выполняется? демоническое обновление? или просто не обновил базу?
точно, я сам его писал ) запрос по остаткам в табл части
ЗаказКлиентаТовары.Ссылка.Дата
демоническое, значит. написано одно, а выполняется другое
я ослеп видимо, не вижу в Запросе поле Дата вобще
вот в том и весь прикол ! )) я тоже мозг себе весь сломал
+1 тоже 3 раза пересмотрел
А что говорит отладчик про текст запроса перед его выполнением?
перечитай до просветления . КЭШ чисти короче
есть динамических списка, один простой работает с таким запросом ВЫБРАТЬ ЗаказКлиента.Ссылка, ЗаказКлиента.Номер, второй работает с запросом в сабже, я пробовал удалить его, второй, ошибка исчезла
и раз Композитор — напиши музыку для этой ошибки… чтонить трагичное
Блин тут про 1С, а я думал дожди, поле…
мда, флуд пошел, печально, в общем 2 дин.списка, второй выдает какую-то хрень
какой флуд? сказано — Кривой КЭШ. Динамическое обновление. Что ещё надо то?
к динамическим спискам отношения не имеет
внешняя обработка ! причем тут динамическое обновление !
возможно, как то влияет тот факт, что отладка производится в конфе, подключенной к хранилищу
вовремя сказано! она тоже может поехать, особенно если изменить запрос, сохранить обработку а в предприятии оставить открытую старую)
потому что в одном случае поле такое есть, а в другом нет
надо сохранить под другим именем, поможет ?
не помогло, (19 )а как кэш почистить ?
проверь… может скэшировалась тоже гденить
для внешних обработок смысла вроде нет чистить кэш. но…
Закрой 1С и снова открой. Потом проверяй. А на будущее — не передавай из формы в модуль объекта ссылку на форму.
Платформа какая? Если не поможет — есть смысл посмотреть в ошибках платформы, для динамических списков видел какую-то ошибку наподобие, Емнип
чего то прочистил в локал сеттингс/1с82 — папки с уи в названии, закрыл все процессы 1с82, щас пеперезапущу
я вчера отлаживал внешнюю печ.форму, где это делал о чем ты написал, но уже после этого закрывал 1с процессы
Файловый вариант или клиент-сервер?
1С:Предприятие 8.2 (8.2.14.528), файловый с подключением к хранилищу
перезапустил 1С, обозвал по-другому обработку — не помогает ничего
я так чувствую, придется 2й динамический список удалять, а вместо него делать таблицу значений, это глюк какой-то, возможно недоработка на уровне платформы…
Это в динамическом списке основной таблице по тч?
А эта обработка, случаем, не делалась правкой другой обработки? Если немного изменить первый список — изменения применяются? Или старая копия остается?
ее вроде так нельзя делать либо добавляй все поля через ссылку
эт очень старая фишка еще с бета версии в запрос по тч с основной таблице он запрашивает и поля ссылки
либо убирай основную таблицу
понял, убрал основную таблицу, Ошибка при выполнении запроса. Ошибка при выполнении запроса. по причине: Ошибка получения данных по причине: Ошибка создания набора данных «НаборДанныхДинамическогоСписка» по причине: Ошибка при исполнении запроса набора данных по причине: {(8, 20)}: Ошибка обработки представления «РегистрНакопления.ТоварыНаСкладах.Остатки:Несоответствие типов (Параметр номер «»1″»)» ЛЕВОЕ СОЕДИНЕНИЕ <<?>>РегистрНакопления.ТоварыНаСкладах.Остатки(
все же пока чего то тоже не идет с , как от этого избавиться, снова прощу помощи
в общем, сделаю таблицей значений
сделай вложенный запрос без основной таблицы это самое простое решение
или сделай соединение с основной ссылкой
Тэги: 1С 8
Комментарии доступны только авторизированным пользователям
При постоянном использовании программного обеспечения в коммерческой деятельности часто приходится сталкиваться с различными багами, которые могут серьезно затормозить экономический процесс. И одна из подобных проблем и станет темой сегодняшнего обзора. Это ошибка в «1С: Предприятие» — «Поле объекта не обнаружено», мы тщательно и детально разберем, как исправить подобную неполадку в 1C. Сразу стоит уточнить, что этот баг не носит критического характера, серьезными проблемами все равно не обернется. Но приостановить выполнение задачи вполне сможет, что неприятно. Особенно если от заполнения формы зависят сроки, нарушать которые ни в коем случае нельзя. Да и часто без базовых навыков приходится обращаться к профессионалам. А они появляются не мгновенно, придется отправить запрос в компанию, осуществляющую техническое сопровождение. Зачастую понадобится около суток. И гораздо проще все сделать самостоятельно прямо на месте. А как это возможно, мы и узнаем в статье.
«Поле объекта не обнаружено»: что значит уведомление и причины его появления
Разбираться можно и простыми логическими изысканиями. Поскольку проблема только с формой, то становится понятно, что сам объект присутствует. Он есть в базе конфигурации, будь то документ, справочник или модуль. Но вот его формальное выражение невозможно, поскольку релиз его не поддерживает. То есть зачастую все связано с тем, что новое программное обеспечение устанавливается напрямую на старую конфигурацию. И они по понятным причинам конфликтуют, ведь система обращается к тем данным и их формам, которые уже просто не используются. Запросы не могут быть нормально обработаны, ведь их способ оформления в коде уже изменился.
Существует несколько причин, по которым такая нестыковка может возникнуть на предприятии. К основным из них стоит отнести:
- Частичное или глобальное обновление программы. Примечательно то, что сбой может появляться даже при незначительном апдейте, который серьезно систему не затрагивает.
- Переустановка всей платформы или установка новой. Обновления и модификации выходят не так часто, чтобы в подобном сбое появилась какая-то система. Но зачастую компании работают годами на устаревших версиях. И как только решаются немного модернизировать техническую составляющую, сталкиваются с такими вот трудностями.
- Системная проблема в самой базе. Вызвана бывает различными причинами. Возможно, данные некорректно обрабатываются.
- Изменения в конфигурации. Причем любого плана: настройка, доработка, персонализация ПО под задачи компании. Часто, когда появляется проблема «Поле объекта не обнаружено», контрагент, справочник, номенклатура, в принципе любой модуль, к которому обращается система, становится недоступен для обработки. И это серьезно тормозит всю работу, которая должна была ускориться после внесения доработок.
А теперь разберемся, как устранить этот баг. Приведем несколько вариантов, которые зависят от конкретной первопричины.
Итак, пройдемся конкретно по способам устранения.
Проблемы с обновлением
Определить эту причину навскидку получится даже у непрофессионала. Если проблема начала появляться как раз после того, как произошел очередной апдейт, то велика вероятность, что он был установлен некорректно или на неподходящую базу.
В этом случае мы в первую очередь проводим восстановление сохраненной (резервной) копии. При этом произойдет небольшой откат, ведь база будет без последних изменений, но выбора нет. Смотрим на результат, и если баг повторяется, когда сотрудники обращаются к модулям, значит, переходим к следующей стадии.
Есть вероятность, что сам размер новой информации в апдейте слишком крупный. И он не встает нормально на текущую базу данных. Правда, если неприятность возникает у большинства пользователей, то выпуск отзывается обратно, также переделывается объем информации, который подается дозировано.
Для проверки обновления на корректность перейдем на официальный сайт разработчика. А затем в поле поиска вводим название нашей текущей конфигурации, с которой и работает предприятие. И если действительно это не локальная неурядица, а крупный баг, то сайт выдаст несколько полезных сведений. Это название — поле объекта не обнаружено, код страны, 1С релиз, к которому будет исправлена эта недоработка и дата его выхода.
Баг платформы
Отличный вариант проверки — выявить нормально ли работает конфигурация с платформой. Обычно на диске сохраняется старая версия, и стоит попробовать использовать ее. Устанавливаем ее параллельно на компьютер, а потом запускаем проблемную конфигурацию уже на ней. И проверяем путем банального теста, возникает ли ошибка снова.
Соответственно, в случае исправления неполадок, причина становится кристально понятной. Что же конкретно не так с новой платформой рассказать сможет опять же официальный сайт. Стоит перейти на него и просмотреть информацию по поиску с кода вашей обновленной платформы.
Чистим кеш
Некоторые пользователи считают, если вам мешает ошибка, «Поле объекта не обнаружено», информация 32-system или временные папки, — temp должна все равно оставаться неприкосновенной. Грубо говоря, вы боитесь трогать материалы, дабы не навредить. Но так поступают лишь люди, которые неграмотны в этой области. Ведь в temp-папках хранится кеш, временная информация. И она может быть как актуальной, так и устаревшей. И когда система обращается к неактуальному архиву, то у нее естественно возникают проблемы с соответствием формы объекта.
Поступаем следующим образом:
В стандартном проводнике вводим набор символов — %appdata%.
Нам понадобится конкретная папка, которая носит название — 1С\1cv8.
Теперь нам необходимо отсортировать сведения, то есть, папки внутри директории по дате последнего изменения. Так мы отсеем старые временные файлы от новых. Сортировка выполняется щелчком мыши по верхней строке — дата изменения. Теперь все старые файлы удаляем. Теоретически, логично попробовать очистить вообще весь кеш. Но это на первое время серьезно увеличит загрузку и темп работы системы. Хотя такой метод считается вполне безопасным.
Настройки пользователя
Если в 1С пишет «Поле объекта не обнаружено», данные, к которым обращается программа, зачастую существуют, но к ним просто нет доступа. И возможной причиной среди прочих стоит назвать некорректно настроенный профиль пользователя.
Переходим в персональные настройки в директории администрирования, а после выбираем полную очистку.
Укажите конкретного человека, профиль которого должен быть исправлен. Помните, что привилегии и права потом придется восстанавливать заново.
Конфигурация
Самый неприятный из возможных исходов. Ведь системных методов починки здесь не предусмотрено, поэтому придется все делать вручную. И если у вас не выйдет, помните, что вы всегда можете обратиться к профессионалам, которые не только решат технические проблемы, но и помогут серьезно расширить текущие возможности программного обеспечения, персонализировать их, а также проведут полную диагностику, выяснят, исправно ли работает ваша версия «1С: Организация», при этом проверка на «Поле объекта не обнаружено» прилагается.
Итак, когда сбой возникает очередной раз, нажимаем на значок подробного разбора.
Нам демонстрируют конкретные модули, с которыми и связана невозможность обработки. То есть, для них не существует корректной формы.
Далее включается конфигуратор. Умная система самостоятельно активирует его.
Смотрим на наличие возможности обработки. Обратите внимание на свойство «видимость» файлов, являющихся проблемными, поле которых не обнаруживается.
Открываем общий справочник по номенклатуре, и вводим там название нашего объекта. Смотрим на выдачу. В большинстве случаев формы программа не находит.
Нам нужно перевести реквизит битого модуля в элемент, создать его форму. Просто в поле нужно зацепить строчку мышкой и вручную перетащить в необходимое окно.
Сохраняем внесенные изменения, проводим обновление конфигурации. Проверяем результат. Если проблемы была определена верно, то никаких багов больше не наблюдается. Этот метод работает со всеми конфигурациями и настройками.
Сбой при запуске
Часто если возникает ошибка в 1С, поле объекта не обнаружено, руководитель просто не знает, как точно поступить. Работа стоит, сотрудники ждут решения. Вызывать мастеров или обращаться к сисадмину, в компетенцию которого этого не входит.
А ведь достаточно выполнить алгоритм из трех простых действия:
- Перезагружаем и восстанавливаем (откатываем) программное обеспечение.
- Обращаемся на официальный сайт дистрибьютора для обновления.
- Запускаем внутреннюю проверку конфигурации на ошибки.
И если сбой возникает конкретно при запуске, то этих трех действий более, чем в половине случаев будет достаточно для исправления неполадки.
«Падает» модуль, но программа работает
Сложная ситуация. Выяснить конкретную причину стоит попытаться самостоятельно, посредством алгоритма, приведенного выше. Но если этот процесс не увенчается успехом, то неполадка кроется глубже. И здесь уже без специалиста не обойтись. Придется обращаться в специализированную компанию.
Сбиты настройки пользователя
Значит, один из профилей ссылается на битые файлы. Либо на те, что уже сейчас просто не актуальны в этой конфигурации. Опять же, придется очистить все настройки этого пользователя через администрирование и восстановить его доступ с нуля.
Повреждение файла
Если поле не обнаружено, описание ошибки часто сообщает, что сам объект был поврежден. Виной тому становится некорректная установка или системная неполадка при конфликте версией программного обеспечения. Лучшим решением будет запуск Конфигуратора, а после — проверка программы на наличие повреждений тома. Таким образом, будут выявлены все файлы, которые работает на текущем этапе некорректно.
Исправляем ошибку
Теперь посмотрим на стандартные причины, которые уже были описаны выше. Но на несколько других примерах, чтобы было еще более наглядно.
Обновляем платформу
В первую очередь открываем информацию по самому обновлению. Нам нужно узнать номер поставки, чтобы дальше было удобно проводить операции по поиску.
Переходим во вкладку «сервис», там смотрим не только конкретику по версии, но и рекомендуемую платформу. А дальше сравниваем ее с той, что установлена на нашем предприятии. Если возникает несоответствие, то логично предположить, что нормально работать система не будет. Она будет обращаться к пустым формам, которые уже не существуют. И в этом варианте, если поле объекта не обнаружено, значение бага кроется просто в конфликте версий. Нужно скачать с официального сайта корректный вариант для установки.
Удаление настроек
Мы не раз уже упоминали про этот пункт. И не зря, ведь львиная доля неполадок связана с ним. Для устранения их необходимо перейти в настройки прав и доступа через меню администрирования.
В следующем меню нам нужно сделать важный выбор. Если конфликт возникает на персональном компьютере одного сотрудника, то конкретного его настройки и вызывают сбой. Тогда нам нужно провести полную чистку его прав и параметров. Но если детально неясно, у кого проблема появляется, а кто ее миновал, то имеет смысл провести глобальную чистку. То есть, удалить настройки всех пользователей, управляющих системой. Да, потом придется повозиться, чтобы восстановить права. Как исправить ситуацию, если в 1С поле агрегатного объекта не обнаружено — это вопрос зачастую с одним ответом — просто сносить все персональные настройки.
Восстанавливаем базу данных
Применяется методика в случае, когда все описанные выше приемы не дали результата. Тогда возникает серьезная вероятность, что неполадка кроется в самой базе. И восстановить ее весьма сложно. Если вы ранее не имели опыта в этом аспекте, возможно, лучше будет довериться профессионалам. Они быстро и без угрозы для системы проведут процедуру.
Самостоятельно же нам понадобится снова запустить конфигуратор, выбрать «тестирование и восстановление базы».
По сути, в нашем случае утрачена логическая адаптация файлов с формами. Выявленные повреждения нужно исправить. Для этого придется указать логическое действие, что делать с файлом. При проведении проверки он может быть удален, создан или очищен.
Создание файла — это имитация существующего элемента, которого на самом деле не будет. То есть ошибка исчезнет, потому что система будет считать, что обращается не к битому файлу. Но и открыть фантомный элемент не сможет, что логично. Если возникает баг, 1 С поле объекта не обнаружено, то после такой проверки уведомлений больше не будет, но корректная форма не появится из ниоткуда. Все равно придется обновлять платформу.
А вот в случае выбор удаления или очищения, все битые файлы будут автоматически удаляться с сервера. И обращаться к ним ПО не будет. Этот вариант тоже по-своему хорош. Но его лучше производить после обновления. Тогда, у нас останутся старые элементы, которые уже не нужны. И при обращении к ним будет появляться баг, который тормозит деятельность. А полное удаление во время тестирования все нерабочие файлы просто удалит, поэтому никакой путаницы возникать не будет.
Если вашей компании требуется ПО, с помощью которого можно ускорить рутинные операции, оптимизировать и автоматизировать многие рутинные процессы (например, маркировку товаров в магазине или инвентаризацию объектов на складе), обращайтесь в «Клеверенс». У нас найдется отличное решение для вашего бизнеса.
Заключение
Подводя итог, хотелось бы отметить два момента. Первый заключается в том, что, часто не установив причину верно, либо проводя процедуры неправильно, избавиться от неполадки не получится, но зато выйдет заработать еще парочку новых. Поэтому если вы не уверены в своих навыках, лучше обращайтесь к специалистам.
Второй заключается в том, что не стоит путать описанный выше сбой и баг, когда объект не обнаружен в 1С. Это не говорит о некорректности формы, а лишь о том, что самого элемента на диске или сервере просто нет. И решается эта ошибка совершенно иным методом.
Количество показов: 39448
I have the following query to one of my database tables:
select count(*) as mycount
from mytable
where fieldone = :fieldone
and fieldtwo = :fieldtwo
Parameters are correctly loaded into the query (both of type String).
When I run this query outside the app (for instance, through the dbexplore) and replace the parameters with the actual values, I get the correct result. But when running it in the app, I get a Field 'fieldtwo' not found
error, right on the Query.Open call.
Why would the BDE not find this field, when it actually exist?
Update: The following query, executed right after the first one (the one that fails), works fine in the app:
select *
from mytable
where fieldone = :fieldone
order by fieldone, fieldtwo
asked Feb 21, 2011 at 13:59
Pablo VenturinoPablo Venturino
5,2185 gold badges34 silver badges41 bronze badges
3
The best guess is that you have populated the field list in the query, this overrides any concept of the underlying fields that are in the query and is a cause of countless confusion.
Right click on the query, pick the fields editor clear all the values that are there and then choose ‘add all fields’ that should cause the missing field to appear once the query is executed.
I think it should auto-populate the fields if there are no defined fields when the query is executed, so you may not need to choose ‘add all fields’ after clearing the fields.
answered Feb 21, 2011 at 14:36
Anya ShenanigansAnya Shenanigans
91.7k3 gold badges109 silver badges123 bronze badges
1
Whenever we come across a problem like this we tend to remove the query from the form and create it dynamically at run time… It depends how ingrained into the form it is…
E.g. If you have a data aware control looking at «fieldtwo» which tries to fetch some data when the underlying data set gets updated then it’ll trigger an error like this, but it’s more obvious when you’ve written code such
SomeEdit.Text = Query.FieldByName("fieldtwo").AsString;
That way it falls over on the relevant line instead of the open (triggering a related event)
answered Feb 21, 2011 at 15:43
JamesJames
9,7735 gold badges34 silver badges58 bronze badges
2
Clear the query content using Query1.SQL.Clear;
statement before opening it.
Other reason can be you are opening other database which may not have the specified field. Be sure that both the DatabaseName's
in your app and dbexplore are same
answered Feb 21, 2011 at 14:22
BharatBharat
6,8285 gold badges35 silver badges57 bronze badges
5
I used to face porblems with BDE when i have SQLExplorer open and the app accesses the DB at the same time (but i had errors like ), try closing the Explorer it may help, if not i would build the SQL as text without the Parameters and try if it works then (if its possible in your situation).
answered Feb 21, 2011 at 14:59
CloudyMarbleCloudyMarble
37k70 gold badges97 silver badges130 bronze badges
1
I don’t use parameters, so I’m just grabbing at straws here. I still use the BDE regularly, but am no expert. I find I shy away from more complex expressions (which yours is not!) because of the little «surprises» like this that the BDE throws at you.
Perhaps adding parentheses:
where (fieldone = :fieldone)
and (fieldtwo = :fieldtwo)
Or, single or double quote signs (this probably will make it worse?)
where (fieldon = ":fieldone")
and (fieldtwo = ":fieldtwo")
Or, to explore the problem, remove the «and fieldtwo = :fieldtwo» line and see if it runs.
Would it be possible for you to do your own parameter substitution with a StringReplace as in
Query1.SQL.Text := StringReplace(Query1.SQL.Text, ":fieldone", "MyVarName",[rfReplaceAll ]);
answered Feb 21, 2011 at 15:36
RobertFrankRobertFrank
7,33211 gold badges53 silver badges99 bronze badges
2
If you are creating a ClienDataSet in memory by the Create DataSet method, you should check the TFieldDefs property, which must have a different field name or not created
answered May 23, 2017 at 2:23
I was having a weird but small problem, I’ll post in case it will help someone in some day.
uRegPeople.pas
with frmEditPerson do
begin
PersonID := qryPerson.FieldByName(ID).AsInteger;
...
end;
I had qryPerson
both in frmRegPeople
and in frmEditPerson
, by using with
I was referencing to frmEditPerson.qryPerson
, however I wanted to reference to frmRegPeople.qryPerson
. Then I need to change to the following code.
with frmEditPerson do
begin
PersonID := Self.qryPerson.FieldByName(ID).AsInteger;
...
end;
// Explanation
// qryPerson --> frmEditPerson.qryPerson;
// Self.qryPerson --> frmRegPeople.qryPerson;
answered Dec 21, 2018 at 13:37
Soon SantosSoon Santos
2,10722 silver badges44 bronze badges