Метабаза

Обсуждение вопросов по разработке программ в среде продуктов копорации "Progress Software"
MaksimZ
Старожил
Сообщения: 433
Зарегистрирован: 08 авг 2005, 15:24
Откуда: Рыбинск. Ярославская область

Метабаза

Сообщение MaksimZ » 24 авг 2005, 14:38


Аватара пользователя
dmi
Старожил
Сообщения: 1523
Зарегистрирован: 27 сен 2001, 03:00
Откуда: Москва

Re: Метабаза

Сообщение dmi » 24 авг 2005, 15:05


Аватара пользователя
George
Старожил
Сообщения: 2871
Зарегистрирован: 12 май 2004, 17:03
Откуда: Питер

Re: Метабаза

Сообщение George » 24 авг 2005, 16:29


bulklodd
Старожил
Сообщения: 448
Зарегистрирован: 27 июл 2001, 03:00
Откуда: Москва

re:Метабаза

Сообщение bulklodd » 24 авг 2005, 20:22


Аватара пользователя
George
Старожил
Сообщения: 2871
Зарегистрирован: 12 май 2004, 17:03
Откуда: Питер

re:Метабаза

Сообщение George » 24 авг 2005, 22:59


MaksimZ
Старожил
Сообщения: 433
Зарегистрирован: 08 авг 2005, 15:24
Откуда: Рыбинск. Ярославская область

метабаза

Сообщение MaksimZ » 25 авг 2005, 09:23


Аватара пользователя
George
Старожил
Сообщения: 2871
Зарегистрирован: 12 май 2004, 17:03
Откуда: Питер

Re: метабаза

Сообщение George » 26 авг 2005, 13:31


MaksimZ
Старожил
Сообщения: 433
Зарегистрирован: 08 авг 2005, 15:24
Откуда: Рыбинск. Ярославская область

Re

Сообщение MaksimZ » 29 авг 2005, 16:47


Аватара пользователя
George
Старожил
Сообщения: 2871
Зарегистрирован: 12 май 2004, 17:03
Откуда: Питер

Re: Re

Сообщение George » 29 авг 2005, 18:02


Аватара пользователя
George
Старожил
Сообщения: 2871
Зарегистрирован: 12 май 2004, 17:03
Откуда: Питер

Re: Re

Сообщение George » 30 авг 2005, 16:19


MaksimZ
Старожил
Сообщения: 433
Зарегистрирован: 08 авг 2005, 15:24
Откуда: Рыбинск. Ярославская область

Метабаза и SDO

Сообщение MaksimZ » 14 сен 2005, 19:32

Самое интересное начинается при работе с метабазой и SDO.
Нам нужно было сделать динамически грузть данныеи из разных источников txt, dbf с немного различающейся структурой следования данных. Мы сделали небольшой мастер с динамическим запросом и использовали SDO по метабазе. Вот тут начались полные глюки.
В триггере написали свободный query c указанием имени базы данных. Программа вела себя совершенно непредсказуемо. Компилируешь - работает нормально, через час делаешь перекомпиляцию - не проходит выборка. Пришлось вручную править код SDO. Везде прописывать прописывать базы данных 'polis' .


&ANALYZE-SUSPEND _VERSION-NUMBER AB_v9r12 GUI ADM2
&ANALYZE-RESUME
/* Connected Databases
polis PROGRESS
*/
&Scoped-define WINDOW-NAME CURRENT-WINDOW
{adecomm/appserv.i}
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS dTables
/*------------------------------------------------------------------------

File:

Description: from DATA.W - Template For SmartData objects in the ADM

Input Parameters:
<none>

Output Parameters:
<none>

Modified: February 24, 1999
------------------------------------------------------------------------*/
/* This .W file was created with the Progress AppBuilder. */
/*----------------------------------------------------------------------*/

/* Create an unnamed pool to store all the widgets created
by this procedure. This is a good default which assures
that this procedure's triggers and internal procedures
will execute in this procedure's storage, and that proper
cleanup will occur on deletion of the procedure. */

CREATE WIDGET-POOL.

/* *************************** Definitions ************************** */

/* Parameters Definitions --- */

/* Local Variable Definitions --- */

&glob DATA-LOGIC-PROCEDURE .p

/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME


&ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK

/* ******************** Preprocessor Definitions ******************** */

&Scoped-define PROCEDURE-TYPE SmartDataObject
&Scoped-define DB-AWARE yes

&Scoped-define ADM-SUPPORTED-LINKS Data-Source,Data-Target,Navigation-Target,Update-Target,Commit-Target,Filter-Target


/* Db-Required definitions. */
&IF DEFINED(DB-REQUIRED) = 0 &THEN
&GLOBAL-DEFINE DB-REQUIRED TRUE
&ENDIF
&GLOBAL-DEFINE DB-REQUIRED-START &IF {&DB-REQUIRED} &THEN
&GLOBAL-DEFINE DB-REQUIRED-END &ENDIF


&Scoped-define QUERY-NAME Query-Main

/* Internal Tables (found by Frame, Query & Browse Queries) */
&Scoped-define INTERNAL-TABLES polis._FILE polis._FIELD

/* Definitions for QUERY Query-Main */
&Scoped-Define ENABLED-FIELDS
&Scoped-Define DATA-FIELDS Name-Label Name-Field
&Scoped-define DATA-FIELDS-IN-_FIELD Name-Label Name-Field
&Scoped-Define MANDATORY-FIELDS Name-Field
&Scoped-Define APPLICATION-SERVICE
&Scoped-Define ASSIGN-LIST rowObject.Name-Label = polis._Field._Label~
rowObject.Name-Field = polis._Field._Field-Name
&Scoped-Define DATA-FIELD-DEFS "polis/sdo/dtt_polis.i"
&Scoped-define SELF-NAME Query-Main
&Scoped-define QUERY-STRING-Query-Main FOR EACH polis._FILE WHERE polis._file._FILE-NAME BEGINS "p_polis", ~
EACH polis._FIELD OF polis._FILE WHERE polis._Field._LABEL <> "&Ecirc;&icirc;&auml;" BY polis._Field._LABEL INDEXED-REPOSITION
{&DB-REQUIRED-START}
&Scoped-define OPEN-QUERY-Query-Main OPEN QUERY {&SELF-NAME} FOR EACH polis._FILE WHERE polis._file._FILE-NAME BEGINS "p_polis", ~
EACH polis._FIELD OF polis._FILE WHERE polis._Field._LABEL <> "&Ecirc;&icirc;&auml;" BY polis._Field._LABEL INDEXED-REPOSITION.
{&DB-REQUIRED-END}
&Scoped-define TABLES-IN-QUERY-Query-Main polis._FILE polis._FIELD
&Scoped-define FIRST-TABLE-IN-QUERY-Query-Main polis._FILE
&Scoped-define SECOND-TABLE-IN-QUERY-Query-Main polis._FIELD


/* Custom List Definitions */
/* List-1,List-2,List-3,List-4,List-5,List-6 */

/* _UIB-PREPROCESSOR-BLOCK-END */
&ANALYZE-RESUME



/* *********************** Control Definitions ********************** */

{&DB-REQUIRED-START}

/* Query definitions */
&ANALYZE-SUSPEND
DEFINE QUERY Query-Main FOR
polis._FILE,
polis._FIELD SCROLLING.
&ANALYZE-RESUME
{&DB-REQUIRED-END}


/* ************************ Frame Definitions *********************** */


/* *********************** Procedure Settings ************************ */

&ANALYZE-SUSPEND _PROCEDURE-SETTINGS
/* Settings for THIS-PROCEDURE
Type: SmartDataObject
Allow: Query
Frames: 0
Add Fields to: Neither
Other Settings: PERSISTENT-ONLY COMPILE APPSERVER DB-AWARE
*/

/* This procedure should always be RUN PERSISTENT. Report the error, */
/* then cleanup and return. */
IF NOT THIS-PROCEDURE:PERSISTENT THEN DO:
MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT.":U
VIEW-AS ALERT-BOX ERROR BUTTONS OK.
RETURN.
END.

&ANALYZE-RESUME _END-PROCEDURE-SETTINGS

/* ************************* Create Window ************************** */

&ANALYZE-SUSPEND _CREATE-WINDOW
/* DESIGN Window definition (used by the UIB)
CREATE WINDOW dTables ASSIGN
HEIGHT = 1.62
WIDTH = 46.6.
/* END WINDOW DEFINITION */
*/
&ANALYZE-RESUME

&ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB dTables
/* ************************* Included-Libraries *********************** */

{src/adm2/data.i}

/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME




/* *********** Runtime Attributes and AppBuilder Settings *********** */

&ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
/* SETTINGS FOR WINDOW dTables
VISIBLE,,RUN-PERSISTENT */
/* _RUN-TIME-ATTRIBUTES-END */
&ANALYZE-RESUME


/* Setting information for Queries and Browse Widgets fields */

&ANALYZE-SUSPEND _QUERY-BLOCK QUERY Query-Main
/* Query rebuild information for SmartDataObject Query-Main
_START_FREEFORM


OPEN QUERY {&SELF-NAME} FOR EACH polis._FILE WHERE polis._file._FILE-NAME BEGINS "p_polis",
EACH polis._FIELD OF polis._FILE WHERE polis._Field._LABEL <> "&Ecirc;&icirc;&auml;" BY polis._Field._LABEL INDEXED-REPOSITION.
_END_FREEFORM
_Options = "NO-LOCK INDEXED-REPOSITION"
_FldNameList[1] > polis._Field._Label
"_Label" "Name-Label" "&Iacute;&agrave;&ccedil;&acirc;&agrave;&iacute;&egrave;&aring;" ? "character" ? ? ? ? ? ? no ? no 30 yes
_FldNameList[2] > polis._Field._Field-Name
"_Field-Name" "Name-Field" "&Egrave;&igrave;&yuml;" ? "character" ? ? ? ? ? ? no ? yes 32 yes
_Design-Parent is WINDOW dTables @ ( 1.14 , 2.6 )
*/ /* QUERY Query-Main */
&ANALYZE-RESUME





/* ************************ Control Triggers ************************ */

&Scoped-define SELF-NAME Query-Main
&UNDEFINE SELF-NAME

&ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK dTables


/* *************************** Main Block *************************** */

&IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN
RUN initializeObject.
&ENDIF

/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME


/* ********************** Internal Procedures *********************** */

&ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI dTables _DEFAULT-DISABLE
PROCEDURE disable_UI :
/*------------------------------------------------------------------------------
Purpose: DISABLE the User Interface
Parameters: <none>
Notes: Here we clean-up the user-interface by deleting
dynamic widgets we have created and/or hide
frames. This procedure is usually called when
we are ready to "clean-up" after running.
------------------------------------------------------------------------------*/
/* Hide all frames. */
IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
END PROCEDURE.

/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME

Аватара пользователя
Arelav
Администратор
Сообщения: 1881
Зарегистрирован: 25 мар 2005, 17:05
Откуда: Progress Technologies

re:Метабаза

Сообщение Arelav » 23 сен 2005, 09:42


bulklodd
Старожил
Сообщения: 448
Зарегистрирован: 27 июл 2001, 03:00
Откуда: Москва

re:Метабаза

Сообщение bulklodd » 23 сен 2005, 09:45


Аватара пользователя
Arelav
Администратор
Сообщения: 1881
Зарегистрирован: 25 мар 2005, 17:05
Откуда: Progress Technologies

re:Метабаза

Сообщение Arelav » 23 сен 2005, 09:56


Аватара пользователя
George
Старожил
Сообщения: 2871
Зарегистрирован: 12 май 2004, 17:03
Откуда: Питер

re:Метабаза

Сообщение George » 23 сен 2005, 09:59

Последний раз редактировалось George 23 сен 2005, 10:03, всего редактировалось 2 раза.