📄 makedbc.prg
字号:
LPARAMETERS tcProject, tcCommonPath, tlIntegerKeys
LOCAL lcDBC, lcSafety, lcViewDBC
* Make the Data directory.
MD DATA
CD DATA
lcDBC = tcProject + ".DBC"
*** EGL: 2001.12.27 16:12:55 - Create a separate DBC for views
lcViewDBC = tcProject + "Views.DBC"
* If there are spaces in the DBC name (Yeesh!), add the quotes.
IF " " $ lcDBC
lcDBC = ["] + lcDBC + ["]
ENDIF
IF " " $ lcViewDBC
lcViewDBC = ["] + lcViewDBC + ["]
ENDIF
DisplayStatus([Creating databases...])
CLOSE DATABASES ALL
CREATE DATABASE &lcViewDBC
CLOSE DATABASES ALL
CREATE DATABASE &lcDBC
DisplayStatus([Creating table NextPK...])
MakeTable_NextPK(tlIntegerKeys)
DisplayStatus([Creating table DUMMY...])
MakeTable_DUMMY()
DisplayStatus([Creating table DEVNOTES...])
MakeTable_DEVNOTES()
DisplayStatus([Finished.])
CLOSE DATABASE
USE (lcDBC)
lcSafety = SET("SAFETY")
SET SAFETY OFF
LOCATE FOR Objectname = "StoredProceduresSource"
IF FOUND()
APPEND MEMO Code FROM TemplateCode.KRT OVERWRITE
REPLACE Code WITH STRTRAN(Code, "<common_path>", ;
LEFT(UPPER(tcCommonPath), LEN(tcCommonPath)-1))
REPLACE Code WITH STRTRAN(Code, "<pjxname>", UPPER(tcProject))
ENDIF
LOCATE FOR Objectname = "StoredProceduresObject"
IF FOUND()
APPEND MEMO Code FROM TemplateComp.KRT OVERWRITE
ENDIF
IF lcSafety == "ON"
SET SAFETY ON
ENDIF
USE
COMPILE DATABASE (lcDBC)
OPEN DATABASE (lcDBC)
* Return back to the project directory
CDToParentDirectory()
RETURN
FUNCTION MakeTable_NextPK
LPARAMETERS tlIntegerKeys
***** Table setup for NextPK *****
CREATE TABLE "NextPK.DBF" NAME "NextPK" (CKEYNAME C(20) NOT NULL, ;
CPREFIX C(10) NOT NULL, ;
CVALUE C(12) NOT NULL DEFAULT "000000000001", ;
CINCREMENTPROCEDURE C(64) NOT NULL DEFAULT "", ;
IMAXLENGTH I NOT NULL CHECK iMaxLength<=LEN(cValue) ERROR "Max length must be less than or equal to the size of the 'cValue' field." DEFAULT LEN(cValue), ;
CTYPE C(1) NOT NULL DEFAULT "I", ;
CDESCRIPTION C(40) NOT NULL)
IF tlIntegerKeys
ALTER TABLE NextPK ;
ALTER COLUMN cType SET DEFAULT "I"
ELSE
ALTER TABLE NextPK ;
ALTER COLUMN cType SET DEFAULT "C" ;
ALTER COLUMN cIncrementProcedure SET DEFAULT "IncrementBase62(LEFT(NextPK.cValue, NextPK.iMaxLength))"
ENDIF
***** Create each index for NextPK *****
SET COLLATE TO "MACHINE"
INDEX ON cKeyName TAG cKeyName
INDEX ON cPrefix TAG cPrefix
***** Change properties for NextPK *****
DBSETPROP("NextPK.cIncrementProcedure ", "Field", "Comment", "Specifies stored procedure used to increment the value.")
DBSETPROP("NextPK.iMaxLength", "Field", "Comment", "The maximimun length of the value (not used for Integer keys).")
DBSETPROP("NextPK", "Table", "Comment", "Holds next available values for primary keys and other sequentially-generated numbers")
RETURN
ENDFUNC
FUNCTION MakeTable_DUMMY
***** Table setup for DUMMY *****
CREATE TABLE "DUMMY.DBF" NAME "DUMMY" (DUMMY_FIELD C(10) NOT NULL)
***** Create each index for DUMMY *****
***** Change properties for DUMMY *****
DBSETPROP("DUMMY", "Table", "Comment", "A placebo table used to instantiate BizObj in RAD mode")
RETURN
ENDFUNC
FUNCTION MakeTable_DEVNOTES
***** Table setup for DEVNOTES *****
CREATE TABLE "DEVNOTES.DBF" NAME "DEVNOTES" (CBIZOBJDES C(50) NOT NULL, ;
MDEVNOTES M NOT NULL)
***** Create each index for DEVNOTES *****
SET COLLATE TO "MACHINE"
INDEX ON CBIZOBJDES TAG DESCRIPT
***** Change properties for DEVNOTES *****
RETURN
ENDFUNC
FUNCTION DisplayStatus(lcMessage)
WAIT WINDOW NOWAIT lcMessage
RETURN
ENDFUNC
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -