sql и автонумерация в словаре
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
sql и автонумерация в словаре
ABC с11 ms sql . Есть таблица ms sql с полем pri_key для sql но в словаре я это поле не указываю а указываю другое поле AVT как pimary_key и avto_number. Т.е. sql сам выставляет pri_key а словарь свой avto_number для другого поля AVT
вроде работает . Это корректно ?
вроде работает . Это корректно ?
- ingasoftplus
- Ветеран
- Сообщения: 429
- Зарегистрирован: 26 Декабрь 2006, 17:07
- Откуда: Оттуда :)
- Благодарил (а): 91 раз
- Поблагодарили: 5 раз
- ingasoftplus
- Ветеран
- Сообщения: 429
- Зарегистрирован: 26 Декабрь 2006, 17:07
- Откуда: Оттуда :)
- Благодарил (а): 91 раз
- Поблагодарили: 5 раз
sql и автонумерация в словаре
хотите ответ? описание sql table, таблицы клариона, + скрины настроек в словаре для таблицы касаемо автонумерации.
пока что мне (трезвому) не понятно что вы написали...
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4688
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 10 раз
- Поблагодарили: 37 раз
sql и автонумерация в словаре
А нафига? Теоретически в определенный момент значения могут стать разными.talgat55 писал(а): ↑09 Январь 2024, 15:33 ABC с11 ms sql . Есть таблица ms sql с полем pri_key для sql но в словаре я это поле не указываю а указываю другое поле AVT как pimary_key и avto_number. Т.е. sql сам выставляет pri_key а словарь свой avto_number для другого поля AVT
вроде работает . Это корректно ?
C6/C11, ШВС, tps/btrieve.
sql и автонумерация в словаре
открываю новую форму add - pri_key в ms sql не определен а для поля автонумер. по словарю он известен
а у меня в режиме add в форме штук 5 дочерних таблиц которые должны быть привязаны к родителю
а у меня в режиме add в форме штук 5 дочерних таблиц которые должны быть привязаны к родителю
-
- ✯ Ветеран ✯
- Сообщения: 1707
- Зарегистрирован: 25 Март 2009, 21:55
- Благодарил (а): 9 раз
- Поблагодарили: 4 раза
sql и автонумерация в словаре
Попробуйте часть кода сюда сбросить, чтобы было понятно о чем речь.
А то получается, умные думают, что другие тоже думают.
А то получается, умные думают, что другие тоже думают.
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4688
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 10 раз
- Поблагодарили: 37 раз
sql и автонумерация в словаре
В клалист было в свое время подробное обсуждение вопроса автонумерации. Насколько помню, присваивать идентификатор записи рекомендовали на стороне сервера, а не на стороне клиента. После добавления записи ее идентификатор можно получить с сервера, способ может зависеть от используемого sql сервера. Можно порыться в архивах клалист для более подробной информации.
C6/C11, ШВС, tps/btrieve.
sql и автонумерация в словаре
все оттого что при открытии новой записи в форме не определен автоинкремент на стороне sql А мне нужно заполнить в этой форме дочерние таблицы которые я привязываю к нему.
- morkovin
- Ветеран
- Сообщения: 910
- Зарегистрирован: 20 Июль 2005, 14:53
- Откуда: Volgograd, Russia
- Благодарил (а): 2 раза
- Поблагодарили: 3 раза
- Контактная информация:
sql и автонумерация в словаре
Для этого я использую шаблон, который подменяет кнопку "Сохранить" на "Применить". Т.е. при добавлении новой записи оператор вводит несколько основных полей и щелкает кнопку Применить. Запись сохраняется и обновляется и открываются закладки для дочерних таблиц.
WBR, morkovin
sql и автонумерация в словаре
так можно заполнить что-нить Сохранить Открыть и продолжать
Оператор ленивый и лишних движений не хочет делать...
Оператор ленивый и лишних движений не хочет делать...
-
- ✯ Ветеран ✯
- Сообщения: 5025
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 7 раз
- Поблагодарили: 22 раза
sql и автонумерация в словаре
К talgat55 и к другим, которым это интересно.
Это типичная задача и проблема. Ну, во-первых, ничего страшного от того, что в словаре будет стоять autoincrement для какого-то индекса (ключа), нет. Всё будет работать как надо. В момент создания записи она будет добавлена в базу и это значение будет доступно в форме. Главное в этом случае отключить autoincrement на стороне сервера. Во-вторых, можно почитать раздел справки "AUTOINC" (Server Side Auto incrementing). Есть возможность эмулировать поведение SQL-базы как файл-серверной. Я так понимаю, происходит тоже самое, что и в первом варианте, только более правильно с точки зрения работы SQL. Проблема в том, что не все драйверы SQL это поддерживают. В-третьих, можно явно вызывать функцию "бронирования" ID-шника (при добавлении записи). Про MS SQL не скажу. В Firebird это выглядит так:
Это надо написать в методе "PrimeFilds". В Firebird используются т.н. генераторы ("S_DEFECT"). По-моему, в MS SQL такого нет. Но подобная функция должна быть.
Это типичная задача и проблема. Ну, во-первых, ничего страшного от того, что в словаре будет стоять autoincrement для какого-то индекса (ключа), нет. Всё будет работать как надо. В момент создания записи она будет добавлена в базу и это значение будет доступно в форме. Главное в этом случае отключить autoincrement на стороне сервера. Во-вторых, можно почитать раздел справки "AUTOINC" (Server Side Auto incrementing). Есть возможность эмулировать поведение SQL-базы как файл-серверной. Я так понимаю, происходит тоже самое, что и в первом варианте, только более правильно с точки зрения работы SQL. Проблема в том, что не все драйверы SQL это поддерживают. В-третьих, можно явно вызывать функцию "бронирования" ID-шника (при добавлении записи). Про MS SQL не скажу. В Firebird это выглядит так:
Код: Выделить всё
FINT{prop:SQL} = 'SELECT GEN_ID(S_DEFECT, 1) FROM RDB$DATABASE'
SQLERR(FINT{prop:SQL})
Access:FINT.Next()
DEF:ID_DEF = FINT.RVAL
We are hard at work… for you.
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 4688
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 10 раз
- Поблагодарили: 37 раз
sql и автонумерация в словаре
В MS SQL это называется SCOPE_IDENTITY(), насколько помню. Сам я со скриптовыми движками БД не работаю. Было еще предложение использовать унифицированный для всех sql серверов подход заполняя перед добавлением записи некоторые поля, определяющие ее уникальность и после добавления делать select max(id) для набора таких полей. Например, пользователь, создающий запись. Я бы все же предложил полистать архивы clalist, там очень подробно обсуждалось.
C6/C11, ШВС, tps/btrieve.