Страница 12 из 12
Re: Identity
Добавлено: 07 Март 2006, 2:56
Денис
Попробовал. У меня ругается на
Код: Выделить всё
DbFiles.Manager.QReadOnly.hField = tmp.QCol.AdrField
Field not found: Manager
и так на всех строках где Magager встречается
и на
No maching prototype available
Re: Identity
Добавлено: 07 Март 2006, 3:12
Денис
Вот полный код метода Insert
Код: Выделить всё
MAV:Save.Insert FUNCTION
! Start of "MAV SaveButton"
! [Priority 5000]
tmp MAVSelect
sql MAVExecSP
! End of "MAV SaveButton"
CODE
! Start of "MAV SaveButton"
! [Priority 3500]
tmp.BindFields(SQL_WDiagramB)
! биндуем все поля записи продекларированные в DCT
loop i# = 1 to records(tmp.QCol)
get(tmp.QCol,i#)
DbFiles.Manager.QReadOnly.hField = tmp.QCol.AdrField
GET(DbFiles.Manager.QReadOnly,DbFiles.Manager.QReadOnly.hField)
IF ERRORCODE()
sql.BindParameter(tmp.QCol.Field)
END
end
! биндуем OUTPUT доп параметр для получения нового ID первичного поля
sql.BindParameter(SQL_WDiagramB.WorkDayID,SQL_PARAM_OUTPUT)
IF sql.Run('CL_InsWDiagramB',1)
MAVSHOWERROR
RETURN 1
END
RETURN 0
! Start of "MAV SaveButton"
! [Priority 5000]
OMIT('**MYINSERT**')
! End of "MAV SaveButton"
IF MAVINSERT(SQL_WDiagramB)
MAVSHOWERROR
RETURN 1
END
! [Priority 8500]
RETURN PARENT.Insert()
! [Priority 9950]
'**MYINSERT**'
! End of "MAV SaveButton"
Может я что не то сделал ?
Re: Identity
Добавлено: 07 Март 2006, 8:42
Andrew™
Денис писал(а):Вот полный код метода Insert
Может я что не то сделал ?
сейчас проверю, но очень охота сегодня проверить следующее
Код: Выделить всё
begin
insert into myTable (field2,field3,field4) values(?,?,?)
? = select SCOPE_IDENTITY()
end
такую конструкцию я могу вставить в библиотеку, анализ типа сервера там есть, и если заработает то будет круто, обожди чуток, тока пришёл.
Re: Identity
Добавлено: 07 Март 2006, 10:29
Andrew™
Денис писал(а):Попробовал. У меня ругается на
Код: Выделить всё
DbFiles.Manager.QReadOnly.hField = tmp.QCol.AdrField
Field not found: Manager
и так на всех строках где Magager встречается
и на
No maching prototype available
DbFiles это и есть .Manager,выкинь его
со вторым, да засада, только черехз ХП при использовании версии билиотеки с этого сайта, а для официальных пользователей приятная новость, см. ответ ниже
Применительно к MSSQL серверу Таблицы с IDENTITY полями
Добавлено: 07 Март 2006, 10:31
Andrew™
Очень много обсуждался вопрос правильного использования IDENTITY полей
правильное решение получения значения такого поля после добавления это:
но добавление INSERT и получение SELECT должны быть в одном скопе
что означало, что добавлять записи надо в ХП, что на мой взгляд крайне
неудобно, т к надо постоянно следить за такими ХП при изменении струткуры
таблицы.
оказывается можно проще без ХП:
Код: Выделить всё
11803608 Maximum read 1 rows for cursor
Binding field 1 = bbb
Binding field 2 = 5
11803608 Parsing Cursor : INSERT INTO dbo.TEST_Table ("Field2","Field3")
VALUES(?,?) SELECT SCOPE_IDENTITY()
11803608 Fetch cursor (1)
= 47
применительно к MAV Direct ODBC, для такого поля в DCT включается крыжик
ReadOnly, а в качестве Initail Value прописывается SELECT SCOPE_IDENTITY(),
и всё, после MAVINSERT'а в поле будет сидеть уже правильное значение.
Re: Применительно к MSSQL серверу Таблицы с IDENTITY полями
Добавлено: 09 Март 2006, 2:07
Денис
Здравствуй Андрей.
Очень приятная новость, особенно если учитывать что я официальный пользователь

(Работаю с Mixer - ом)
Re: Применительно к MSSQL серверу Таблицы с IDENTITY полями
Добавлено: 09 Март 2006, 8:24
Andrew™
Денис писал(а):Здравствуй Андрей.
Очень приятная новость, особенно если учитывать что я официальный пользователь

(Работаю с Mixer - ом)
енто кто? пиши на мыло более подробно, что за организация, какой Clarion, дам ссылку на актуальное состояние
andrew@arsis.ru
инкрементальный поиск в Browse
Добавлено: 17 Март 2006, 11:11
Andrew™
Попов Андрей Алескандрович писал(а):1. не работает инкрементальный поиск по очереди (строковое поле) при
нахождении фокуса в листе. вернее, конечно сказать, что работает...но
не совсем как надо. Невозможно нажать пробел.
Допустим у меня предприятие "ип пак". Я набираю "ип" потом пробел.
Далее хочу набрать "п". Не набирает вообще.
Если стою в локаторном поле, то все ок, естественно, а вот в листе
нет.
Не особо напрягает, но все таки.
действительно, про пробел я и забыл, пофиксил