MAV Direct ODBC

Обсуждение MAV Direct ODBC

Модератор: Andrew™

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion и MAV который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Денис
Бывалый
Сообщения: 70
Зарегистрирован: 07 Июль 2005, 5:39
Откуда: Хабаровск
Контактная информация:

Re: Identity

Сообщение Денис »

Попробовал. У меня ругается на

Код: Выделить всё

DbFiles.Manager.QReadOnly.hField = tmp.QCol.AdrField
Field not found: Manager

и так на всех строках где Magager встречается

и на

Код: Выделить всё

sql.BindParameter|(tmp.QCol.Field)
No maching prototype available
Денис
Бывалый
Сообщения: 70
Зарегистрирован: 07 Июль 2005, 5:39
Откуда: Хабаровск
Контактная информация:

Re: Identity

Сообщение Денис »

Вот полный код метода 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"
Может я что не то сделал ?
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Re: Identity

Сообщение Andrew™ »

Денис писал(а):Вот полный код метода Insert
Может я что не то сделал ?
сейчас проверю, но очень охота сегодня проверить следующее

Код: Выделить всё

 begin
   insert into myTable (field2,field3,field4) values(?,?,?)
   ? = select SCOPE_IDENTITY()
 end
такую конструкцию я могу вставить в библиотеку, анализ типа сервера там есть, и если заработает то будет круто, обожди чуток, тока пришёл.
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Re: Identity

Сообщение Andrew™ »

Денис писал(а):Попробовал. У меня ругается на

Код: Выделить всё

DbFiles.Manager.QReadOnly.hField = tmp.QCol.AdrField
Field not found: Manager

и так на всех строках где Magager встречается

и на

Код: Выделить всё

sql.BindParameter|(tmp.QCol.Field)
No maching prototype available

DbFiles это и есть .Manager,выкинь его

со вторым, да засада, только черехз ХП при использовании версии билиотеки с этого сайта, а для официальных пользователей приятная новость, см. ответ ниже
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Применительно к MSSQL серверу Таблицы с IDENTITY полями

Сообщение Andrew™ »

Очень много обсуждался вопрос правильного использования IDENTITY полей

правильное решение получения значения такого поля после добавления это:

Код: Выделить всё

SELECT SCOPE_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'а в поле будет сидеть уже правильное значение.
Денис
Бывалый
Сообщения: 70
Зарегистрирован: 07 Июль 2005, 5:39
Откуда: Хабаровск
Контактная информация:

Re: Применительно к MSSQL серверу Таблицы с IDENTITY полями

Сообщение Денис »

Здравствуй Андрей.

Очень приятная новость, особенно если учитывать что я официальный пользователь :) (Работаю с Mixer - ом)
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Re: Применительно к MSSQL серверу Таблицы с IDENTITY полями

Сообщение Andrew™ »

Денис писал(а):Здравствуй Андрей.

Очень приятная новость, особенно если учитывать что я официальный пользователь :) (Работаю с Mixer - ом)
енто кто? пиши на мыло более подробно, что за организация, какой Clarion, дам ссылку на актуальное состояние

andrew@arsis.ru
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

инкрементальный поиск в Browse

Сообщение Andrew™ »

Попов Андрей Алескандрович писал(а):1. не работает инкрементальный поиск по очереди (строковое поле) при
нахождении фокуса в листе. вернее, конечно сказать, что работает...но
не совсем как надо. Невозможно нажать пробел.
Допустим у меня предприятие "ип пак". Я набираю "ип" потом пробел.
Далее хочу набрать "п". Не набирает вообще.
Если стою в локаторном поле, то все ок, естественно, а вот в листе
нет.
Не особо напрягает, но все таки.
действительно, про пробел я и забыл, пофиксил
Ответить