
ããã«ã¡ã¯ã
ãã®è³æã¯ã1Cãã©ãããã©ãŒã ã§å®è¡ãããŠããããã°ã©ã ããInterBase / FireBirdããŒã¿ããŒã¹ãæäœããããã®åºæ¬çãªãã¯ããã¯ãšãã¯ããã¯ããŸãšããŠç€ºãããšãç®çãšããŠããŸãã ããã«ç€ºãããŠããã»ãšãã©ãã¹ãŠã®ãã®ã¯ãäœããã®æ¹æ³ã§ä»ã®ã€ã³ã¿ãŒããããœãŒã¹ã«ãããŸãã ãã ãããã®èšäºã§ã¯ãè³æã¯éåžžã«å®å šã§ãã èšèŒããããããã¯ã®äžéšãæ¬ èœããŠããå¯èœæ§ããããŸãããããã§ããæ瀺ãããè³æïŒç§ã®ç解ã§ã¯ïŒã¯ã»ãšãã©ã®åé¡ã解決ããã®ã«ååã§ãïŒã¡ãªã¿ã«ãäœããããŸããããªãã£ã-誰ãã解決çãæããŠãããŠãè³æãè£è¶³ããããšãã§ãããããããŸããïŒã ããã«ãèšäºã«æ·»ä»ãããŠãããã¢ã¯ãç¬èªã®åæ§ã®ããã°ã©ã ãéçºããããã®ãã¬ãŒã ã¯ãŒã¯ãšããŠåžæãã人ã䜿çšã§ããŸãã 1CãããµãŒãããŒãã£ã®ããŒã¿ããŒã¹ã«ã¢ã¯ã»ã¹ããã¿ã¹ã¯ã®ã»ãšãã©ã¯ãé£æ¥ããæ å ±ã·ã¹ãã ããããŒã¿ãããŠã³ããŒãããå¿ èŠãããããã«å¶éãããŠãããšããäºå®ã«ãããããããããã§ã¯ãããŒã¿ããŒã¹å ã®ããŸããŸãªã¿ã€ãã®èšé²æ å ±ãå«ããããŒã¿ããŒã¹ã«ã¢ã¯ã»ã¹ããããã®ããå€æ§ãªãªãã·ã§ã³ã瀺ããŸãã
ãã®æçš¿ã§ã¯ä»¥äžã«ã€ããŠèª¬æããŸãã
-ãµãŒããŒïŒããŒã¿ããŒã¹ïŒã«æ¥ç¶ããã·ã£ããããŠã³æã«åæããæ¹æ³ã
-SQLã¯ãšãªã®å®è¡æ¹æ³ïŒã¯ãšãªããã¹ãã«çŽæ¥é 眮ã§ããªããã®ïŒé·ãè¡ãBLOBãã£ãŒã«ãïŒãå«ãããŒã¿ã®éåä¿¡ïŒã
-ããŒã¿å€æã®å®è¡æ¹æ³ãçšèŸŒã ããŒã¿ããŒã¹ãšã®éã§ããŒã¿ã転éãããšãã®ããã¹ããšã³ã³ãŒãã£ã³ã°ã
-ããŒã¿ããŒã¹ãµãŒããŒããžãã¯ã«ã¢ã¯ã»ã¹ããæ¹æ³ïŒã¹ãã¢ãããã·ãŒãžã£ãåŒã³åºãïŒ;
-ããŒã¿ããŒã¹ãµãŒããŒã«ããTCPæ¥ç¶ã®èªååæããããã°ã©ã ãä¿è·ããæ¹æ³ã
-äžè¬çãªããã°ã©ãã³ã°ã«é¢é£ãããã®ä»ã®èå³æ·±ãããªãã¯ïŒäžèšã®ãã¹ãŠã®ã¢ã¯ã·ã§ã³ã䟿å©ã§ãä¿¡é Œæ§ãé«ãã移æ€å¯èœã«ããæ¹æ³ïŒã
ããã§ã¯ãå§ããŸããã...
ãšã³ããªãŒã
ãã¢ã¯éåžžã«å€§ããããšãå€æããŸããã ããã§ããããã°ã©ã ã®æ§é ã¯éåžžã«æ確ã§ãããããç解ããããšã¯éåžžã«å¯èœã§ãã
ããã°ã©ã ïŒããã¯å€éšåŠçã§ãïŒã¯ããOOP in 1CããšåŒã°ããç¹æ®ãªæ§é ããã°ã©ãã³ã°ã®æ¹æ³ãç©æ¥µçã«äœ¿çšããŸãïŒè©³çŽ°ã¯ãã¡ããåç § ïŒã å®éãäžè¬çãªåŠçã¢ãžã¥ãŒã«ïŒãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ã«çŽæ¥é¢ä¿ããªãããã°ã©ã ã®äžéšïŒã®ã»ãŒå šäœããã®ãããªæ§é ã§æ§æãããŠããŸãã
ãŸãããæ å ±ã¡ãã»ãŒãžã®ãªã¹ãããªã©ã®ã€ã³ã¿ãŒãã§ãŒã¹ãããã€ã¹ãã䜿çšãããŸãïŒ ããã§è©³çŽ°ã«èª¬æããŸã ïŒã
ãã®ããã°ã©ã ã¯ã FireBird 1.5ããã³FireBird 2.1ã®ããŒãžã§ã³ã§ãã¹ããããŠããŸãã ã»ãšãã©ã®å Žåãä»ã®ããŒãžã§ã³ã®DBMSã§ãæ©èœããŸãã ãã®ããŒã¿ããŒã¹ã¢ã¯ã»ã¹ã¡ã«ããºã ã¯ADOãã¯ãããžãŒã䜿çšããŸãã ãããã£ãŠã1Cã¯ã©ã€ã¢ã³ããèµ·åããã³ã³ãã¥ãŒã¿ãŒã«ã¯ã Firebird_ODBCãã©ã€ããŒãšgds32.dllã¯ã©ã€ã¢ã³ãã©ã€ãã©ãªãã€ã³ã¹ããŒã«ããå¿ èŠããããŸãã
ããã°ã©ã ã®å®å šãªãœãŒã¹ã³ãŒãã¯æäŸããŸããïŒåã ã®ã¯ã©ã¹ã®ãœãŒã¹ã³ãŒããç¥èªã§ç€ºããŸãïŒã ãœãŒã¹ã³ãŒãã衚瀺ããã«ã¯ã1Cã§ãã¹ãã±ãŒã¹ãçŽæ¥éãããšããå§ãããŸãã衚瀺å質ã¯ãHTMLãããªãã·ã³ã°ã䜿çšããŠå©çšã§ãããã®ãããã¯ããã«é«ããªããŸãã
åé¡ã®èª¬æïŒãã¢ã®æ¬è³ªïŒã
äŸãšããŠãæ¡ä»¶ä»ãã§ãããŒãããã¯ããšåŒã°ããåçŽãªæ å ±ã·ã¹ãã ãèããŸãã ãã©ãããã©ãŒã ã§äœæã§ãããã£ã¬ã¯ããªã«å€å°äŒŒãŠããŸãã é£çµ¡å æ å ±ã®ãã£ã¬ã¯ããªããããŸãã ãã£ã¬ã¯ããªå ã«ã°ã«ãŒãïŒãã£ã¬ã¯ããªïŒã®ããªãŒããããŸã-å ¥ãåã®ä»»æã®ããªãŒãäœæããããšãã§ããŸãã ãããããã«ãŒãããã€ãŸã é£çµ¡å æ å ±ãå«ãå®éã®èšé²ã ããã«ããã®æ å ±ã·ã¹ãã ã«ã¯ãã¢ã¯ã»ã¹æš©ãæã€ãŠãŒã¶ãŒïŒã¢ã«ãŠã³ãïŒãååšããŸãã æ€çŽ¢ãªãïŒããŒã¿å ¥åãšã°ã«ãŒãããªãŒããã²ãŒã·ã§ã³ã®ã¿ïŒã ãŠãŒã¶ãŒãå ¥åããããŒã¿ã«ãã€ã³ãããããšã¯ãªãïŒæšæºã®1Cãœãªã¥ãŒã·ã§ã³ã®ããã¥ã¡ã³ãã®Basic Responsibleãã£ãŒã«ããªã©ïŒããŠãŒã¶ãŒã¢ã¯ã·ã§ã³ã®ãã°ïŒãã°ïŒããããŸããã ããŒã¿ããŒã¹ã§ã®äœæ¥ãå®èšŒããããã«ããã®æ©èœã§ååã§ããããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ã®å®è£ ãããã«è€éã«ããããããŸããã§ããã
ãã®ã¢ããªã±ãŒã·ã§ã³ã®å€èŠ³ã¯æ¬¡ã®ãšããã§ãïŒäžé£ã®ã¹ã¯ãªãŒã³ã·ã§ããã«ç€ºããŸãïŒã
ããã°ã©ã ã®ã¡ã€ã³ãŠã£ã³ããŠïŒ

äžéšã«ã¯ãã³ãã³ããåããã¡ã€ã³ã¡ãã¥ãŒãšããŒã«ããŒããããŸãã
äžå€®ã«ã¯ãé£çµ¡å ãã£ã¬ã¯ããªã®è¡šç€ºã®äž»èŠãªèŠçŽ ããããŸããå·Šã®å-ãã£ã¬ã¯ããªã®ã°ã«ãŒãã®ããªãŒãå³ã®å-çŸåšã®ïŒå·Šã®åã§åŒ·èª¿è¡šç€ºãããŠããïŒã°ã«ãŒãã®å 容ïŒã°ã«ãŒããšèŠçŽ ïŒã
äžéšã«ã¯ãããã°ã©ã äžã«çºçããã¡ãã»ãŒãžã衚瀺ããããã®ãã£ãŒã«ãããããŸãïŒãã®å Žåããããã¯ãšã©ãŒã¡ãã»ãŒãžã§ãïŒã
ããã«ã次ã®ããšãæ³å®ããŠããŸãã
-ã çŸåšã®ã°ã«ãŒã ãã¯ãã°ã«ãŒãããªãŒïŒå·ŠåŽã®åïŒã§éžæãããã°ã«ãŒãã§ãã
-ã çŸåšã®ã°ã«ãŒãã®ã³ã³ãã³ã ãã¯ãå³åŽã®åã«è¡šç€ºãããã°ã«ãŒããšèŠçŽ ã®ãªã¹ãã§ãã
-ã çŸåšã®ã°ã«ãŒãã®çŸåšã®ãªããžã§ã¯ã ãã¯ãå³åŽã®åã§éžæãããã°ã«ãŒããŸãã¯èŠçŽ ã§ãã
ãã¹ãŠã®ã³ãã³ãïŒè¿œå ãç·šéãåé€ã移åïŒã¯ãå³åŽã®åã®å 容ïŒçŸåšã®ã°ã«ãŒããŸãã¯çŸåšã®ã°ã«ãŒãã®çŸåšã®èŠçŽ ã®ããããïŒã«é¢é£ããŠããŸã-ãã£ã¬ã¯ããª1Cãæäœããããã®æšæºã€ã³ã¿ãŒãã§ã€ã¹ãšåæ§ã§ãã
ã¡ã€ã³ã¡ãã¥ãŒãšããŒã«ããŒã«ã¯ã次ã®ã³ãã³ããå«ãŸããŠããŸãã
å³ | ããŒã å | 説æ |
---|---|---|
ãããŒã¹ãâãæ¥ç¶ã | ããŒã¿ããŒã¹ã«æ¥ç¶ããŸãïŒä»¥åã®æ¥ç¶ãéããŸãïŒã | |
![]() | ãããŒã¹ãâãçµäºã | ããã°ã©ã ãçµäºãã |
![]() | ã¢ã¯ã·ã§ã³âè¿œå | çŸåšã®ãã£ã¬ã¯ããªã°ã«ãŒãã«æ°ããèŠçŽ ïŒã«ãŒãïŒãäœæããŸãã |
![]() | ã¢ã¯ã·ã§ã³âæ°ããã°ã«ãŒã | çŸåšã®ãã£ã¬ã¯ããªã°ã«ãŒãã«æ°ããã°ã«ãŒããäœæããŸãã |
![]() | ã¢ã¯ã·ã§ã³âã³ã㌠| çŸåšéžæãããŠãããªããžã§ã¯ãã®ããŒã¿ã«åºã¥ããŠãçŸåšã®ãã£ã¬ã¯ããªã°ã«ãŒãã«æ°ãããªããžã§ã¯ããäœæããŸãã æ£ç¢ºã«äœæããããã®ïŒã°ã«ãŒããŸãã¯ã«ãŒãïŒã¯ãçŸåšã®ã°ã«ãŒãã§éžæããããªããžã§ã¯ãã«ãã£ãŠç°ãªããŸãã |
![]() | ã¢ã¯ã·ã§ã³âç·šé | çŸåšã®ã°ã«ãŒãïŒã°ã«ãŒããŸãã¯ã«ãŒãïŒã®çŸåšã®ãªããžã§ã¯ããç·šéããããã«éããŸãã |
![]() | ã¢ã¯ã·ã§ã³âåé€ | çŸåšã®ã°ã«ãŒãïŒã°ã«ãŒããŸãã¯ã«ãŒãïŒã®çŸåšã®ãªããžã§ã¯ããåé€ããŸãã |
![]() | ã¢ã¯ã·ã§ã³âã°ã«ãŒãã«ç§»å | çŸåšã®ã°ã«ãŒãïŒã°ã«ãŒããŸãã¯ã«ãŒãïŒã®çŸåšã®ãªããžã§ã¯ããå¥ã®ã°ã«ãŒãã«ç§»åããŸãã |
![]() | ã¢ã¯ã·ã§ã³âæŽæ° | ãã¹ãŠã®ããŒã¿ãå床ãªããŒãããŸãïŒã°ã«ãŒãã®ããªãŒãšçŸåšã®ã°ã«ãŒãã®ã³ã³ãã³ãã®ãªã¹ãã®äž¡æ¹ïŒã |
ãèšå®ãâããã¹ã¯ãŒãã®å€æŽã | çŸåšã®ãŠãŒã¶ãŒã®ãã¹ã¯ãŒããå€æŽãã | |
ãèšå®ãâããŠãŒã¶ãŒãªã¹ãã | ããŒã¿ããŒã¹ã®ãŠãŒã¶ãŒã®ãªã¹ããç·šéããŸãã | |
ãèšå®ãâãæ¥ç¶ãããã¡ã€ã«ã | ããŒã¿ããŒã¹æ¥ç¶ãããã¡ã€ã«ã®ç·šé |
ããŒã¿ããŒã¹ã«æ¥ç¶ããåã®ããã°ã©ã ãŠã£ã³ããŠïŒ

æ¥ç¶é²æãã€ã¢ãã°ïŒ
ïŒã³ãã³ãïŒãããŒã¹ãâãæ¥ç¶ãïŒ

ããŒã¿ããŒã¹ã«æ¥ç¶ããåŸã®ããã°ã©ã ãŠã£ã³ããŠïŒ

ããŒã¿ããŒã¹æ¥ç¶ãããã¡ã€ã«ãèšå®ããããã®ãã€ã¢ãã°ïŒ
ïŒã³ãã³ãïŒãèšå®ãâãæ¥ç¶ãããã¡ã€ã«ãïŒ

ãã¹ã¯ãŒãå€æŽãã€ã¢ãã°ïŒ
ïŒã³ãã³ãïŒãèšå®ãâããã¹ã¯ãŒãã®å€æŽãïŒ

ãŠãŒã¶ãŒãªã¹ãã®èšå®ïŒ
ïŒã³ãã³ãïŒãèšå®ãâããŠãŒã¶ãŒãªã¹ããïŒ

é£çµ¡å ãã£ã¬ã¯ããªã°ã«ãŒãã®ç·šéïŒ
ïŒã³ãã³ãïŒãã¢ã¯ã·ã§ã³ãâãæ°ããã°ã«ãŒããããã¢ã¯ã·ã§ã³ãâãã³ããŒãããã¢ã¯ã·ã§ã³ãâãå€æŽãïŒ

é£çµ¡å ïŒã«ãŒãïŒã®ãã£ã¬ã¯ããªã®èŠçŽ ã®ç·šéïŒ
ïŒã³ãã³ãïŒãã¢ã¯ã·ã§ã³ãâãè¿œå ãããã¢ã¯ã·ã§ã³ãâãã³ããŒãããã¢ã¯ã·ã§ã³ãâãå€æŽãïŒ

ã°ã«ãŒãããªãŒã®ã°ã«ãŒãéžæãã€ã¢ãã°ïŒ
ã°ã«ãŒãããã³ã«ãŒãç·šéãã€ã¢ãã°ã§èŠªã°ã«ãŒãã瀺ããçŸåšã®ã°ã«ãŒãã®çŸåšã®ãªããžã§ã¯ãïŒã¡ã€ã³ããã°ã©ã ãŠã£ã³ããŠã®å³åŽã®ãªã¹ãã§éžæããããªããžã§ã¯ãïŒãæ°ããã°ã«ãŒãã«ç§»åãããšãã«ãã°ã«ãŒããå€ã«ç€ºãããã«äœ¿çšãããŸãã

ããŒã¿ããŒã¹æ§é ã
ã·ã¹ãã ã®äž»èŠãªãšã³ãã£ãã£ïŒ
1.ã·ã¹ãã ãŠãŒã¶ãŒïŒã¢ã«ãŠã³ãïŒã®ãã£ã¬ã¯ããªã èŠçŽ ïŒã¢ã«ãŠã³ãïŒã®ã¿ã§æ§æãããŸãã ãããã£ãŠãããŒã¿ããŒã¹ã¯1ã€ã®ããŒãã«ã§è¡šãããŸãã
2.å®éã«ã¯ãé£çµ¡å æ å ±ã®ã¿ãŒã²ãããã£ã¬ã¯ããªã ã°ã«ãŒãïŒãã£ã¬ã¯ããªããªãŒïŒãšèŠçŽ ïŒã«ãŒãïŒã§æ§æãããŸãã ããŒã¿ããŒã¹ã§ã¯ããã£ã¬ã¯ããªã¯ã°ã«ãŒãã®åå¥ã®ããŒãã«ïŒãã£ã¬ã¯ããªã¬ãã«ã®ããªãŒãæ ŒçŽããŸãïŒãšèŠçŽ ã®åå¥ã®ããŒãã«ïŒé£çµ¡å èªäœãå«ãã«ãŒããæ ŒçŽããŸãïŒã§è¡šãããŸãã
ããŒã¿ããŒã¹ã§ã次ã®ããŒãã«ãäœæããŸãã
-ããŒãã«ãGROUPSã-ã°ã«ãŒãã®ããªãŒã®ã¹ãã¬ãŒãžã
ãã£ãŒã«ãå | ããŒã¿å | 説æ |
---|---|---|
ã°ãªãã | æŽæ° | ããŒãã«å ã®ã¬ã³ãŒãèå¥åã¯ãããªãŒããŒãã®èå¥åã§ãïŒãã¹ãŠã®å€> 0ïŒã |
PGRID | æŽæ° | 芪ããŒãã®IDã ãããã£ãŠãåäžããªãŒã®ããŒãéã«æ¥ç¶ã確ç«ãããŸãã å€0ã¯ããã®ããŒããããªãŒã®ãã«ãŒããã«å«ãŸããããšãæå³ããŸãã ã«ãŒãèªäœã¯ããŒã¿ããŒã¹ã«ä¿åãããŸããïŒåžžã«ããã°ã©ã å ã«ãããŸã-å€ââæŽã§ããŸããïŒã |
GRNAME | VARCHARïŒ255ïŒ | ããªãŒããŒãã®ååã ãããã®å€ïŒããŒãã«å ïŒã®äžææ§ã¯ã1Cãªãã¡ã¬ã³ã¹ããã¯ã®ããã«ç£èŠãããŸããã |
-ããŒãã«ãCARDSã-ãã£ã¬ã¯ããªèŠçŽ ã®ã¹ãã¬ãŒãž-é£çµ¡å ããŒã¿ã®ããã«ãŒãã
ãã£ãŒã«ãå | ããŒã¿å | 説æ |
---|---|---|
CDID | æŽæ° | ããŒãã«å ã®ã¬ã³ãŒãèå¥åã¯ã«ãŒãèå¥åã§ãïŒãã¹ãŠã®å€> 0ïŒã |
ã°ãªãã | æŽæ° | 芪ããªãŒããŒãã®èå¥åïŒGROUPS.GRIDãžã®ãªã³ã¯ïŒã ãããã£ãŠãã«ãŒããšããªãŒã®æ¥ç¶ã確ç«ãããŸãã å€0ã¯ããã®ã«ãŒããããªãŒã®ãã«ãŒããã«å«ãŸããããšãæå³ããŸãïŒãã ããGROUPSããŒãã«ã«GRID = 0ã®ãšã³ããªã¯ãããŸããïŒã |
GRNAME | VARCHARïŒ255ïŒ | ã«ãŒãã®ååã ãããã®å€ïŒããŒãã«å ïŒã®äžææ§ã¯ã1Cãªãã¡ã¬ã³ã¹ããã¯ã®ããã«ç£èŠãããŸããã |
CDDESCRIPT | VARCHARïŒ255ïŒ | 説æã«ãŒãã®ãã£ãŒã«ãã |
CDãåãåãã | BLOBïŒTEXT-1ïŒ | é£çµ¡å æ å ±ã å®éãMEMOã¿ã€ãã®åœ¢åŒã®ããã¹ããã£ãŒã«ãã¯å¯å€é·ã®å€§ããªããã¹ãã§ãããã¡ã€ã³ããŒãã«ãšã¯å¥ã«ä¿åãããŸãã ãšã³ã³ãŒãã£ã³ã°ïŒCHARãVARCHARãªã©ïŒã䜿çšããèªåäœæ¥ã®ãã¹ãŠã®ã«ãŒã«ãé©çšãããŸãã |
Cdnote | BLOBïŒãã€ããª-0ïŒ | 泚ã å®éãããã¹ããã£ãŒã«ãã§ããããã€ããªBLOBãšããŠèšè¿°ãããŠããŸãã ãããè¡ãã¹ãã§ã¯ãããŸããããããŒã¿ããŒã¹ã®åœ¢åŒã¯ç§ãã¡ã«ãã£ãŠéžæãããªãããšãå€ãããããã®ãªãã·ã§ã³ã¯éåžžã«å¯èœã§ãã ãã®äŸã¯ãããŒã¿ããŒã¹ãããã¹ãã§ããããšãèªèããŠããªãå Žåã«ããã¹ãïŒãšã³ã³ãŒãïŒãåŠçããæ¹æ³ã瀺ããŸãã |
CDIMAGE | BLOBïŒãã€ããª-0ïŒ | ããã¯ãã«ãŒãã«æ·»ä»ãããç»åãä¿åãããå Žæã§ãã å®éã察å¿ããã°ã©ãã£ãã¯ãã¡ã€ã«ãšåããã®ãå«ãŸããŠããŸãã |
-ããŒãã«ãUSERSã-æ å ±ã·ã¹ãã ã®è³æ Œæ å ±ã
ãã£ãŒã«ãå | ããŒã¿å | 説æ |
---|---|---|
UID | æŽæ° | ããŒãã«å ã®ãšã³ããªã®IDã |
UNAME | VARCHARïŒ255ïŒ | ãŠãŒã¶ãŒã¢ã«ãŠã³ãã®ååïŒãã°ã€ã³ïŒã ããã°ã©ã ã¯ããã®ãã£ãŒã«ãã®äžææ§ïŒããŒãã«å ïŒãå¶åŸ¡ããŸãïŒå€§æåãšå°æåãåºå¥ããŸãã-ã€ãŸãããadminããŠãŒã¶ãŒãããå ŽåããAdMiNãã¢ã«ãŠã³ããäœæã§ããŸããïŒã |
UPWD | VARCHARïŒ255ïŒ | ãŠãŒã¶ãŒãã¹ã¯ãŒãïŒã¯ãªã¢ããã¹ãã§ä¿åãããŸããããã¯ãFireBirdã®æ°ããããŒãžã§ã³ã§ã¯md5é¢æ°ãååšããã1Cã§ã®ãã®ã¢ã«ãŽãªãºã ã®å®è£ ãèšå€§ã§ããããã§ãã |
ã©ã€ã | VARCHARïŒ255ïŒ | ãŠãŒã¶ãŒæš©é-æåã0ãããã³ã1ãã®æååã察å¿ããäœçœ®ã«ããã察å¿ãããŠãŒã¶ãŒæš©éã®äžåšïŒã0ãïŒãŸãã¯ååšïŒã1ãïŒã瀺ããŸãã
ãã®ããŒãžã§ã³ã§ã¯ã次ã®ãŠãŒã¶ãŒæš©éã䜿çšãããŸãã -position 1-ããŒã¿ã衚瀺ããæ©èœã -äœçœ®2-ããŒã¿ãç·šéããæ©èœã -position 3-ãŠãŒã¶ãŒã®ãªã¹ããç·šéããæ©èœïŒç®¡çïŒ |
ãŸãã次ã®ã¹ãã¢ãããã·ãŒãžã£ãããŒã¿ããŒã¹ã«é 眮ãããŸãã
æç¶ãå | ãã©ã¡ãŒã¿å | ãã©ã¡ãŒã¿ã¿ã€ã | 説æ |
---|---|---|---|
SAVE_GROUP | ãã®æé ã§ã¯ãã°ã«ãŒããããŒã¿ããŒã¹ã«ä¿åïŒè¿œå ãŸãã¯æŽæ°ïŒããŸãã | ||
å ¥åãã©ã¡ãŒã¿ãŒïŒ | |||
ã°ãªãã | æŽæ° | ä¿åãããã°ã«ãŒãã®èå¥åïŒã°ã«ãŒãã以åã«ä¿åãããŠããªãå Žåã¯0ïŒ | |
PGRID | æŽæ° | 芪ã°ã«ãŒãID | |
GRNAME | VARCHARïŒ255ïŒ | ã°ã«ãŒãå | |
åºåãã©ã¡ãŒã¿ãŒïŒ | |||
çµæ | æŽæ° | ä¿åãããå Žåãä¿åãããã°ã«ãŒãã®èå¥åã
0-ã°ã«ãŒããä¿åãããªãã£ãå Žå | |
ERRMSG | VARCHARïŒ255ïŒ | ãšã©ãŒãçºçããå Žåã®ãšã©ãŒã¡ãã»ãŒãžããã¹ãïŒRESULT = 0ïŒ | |
DELETE_GROUP | ãã®æé ã«ãããããŒã¿ããŒã¹ããã°ã«ãŒããåé€ãããŸãã | ||
å ¥åãã©ã¡ãŒã¿ãŒïŒ | |||
ã°ãªãã | æŽæ° | åé€ããã°ã«ãŒãID | |
åºåãã©ã¡ãŒã¿ãŒïŒ | |||
çµæ | æŽæ° | åé€ãããå Žåãåé€ãããã°ã«ãŒãã®IDã
0-ã°ã«ãŒããåé€ãããŠããªãå Žå | |
ERRMSG | VARCHARïŒ255ïŒ | ãšã©ãŒãçºçããå Žåã®ãšã©ãŒã¡ãã»ãŒãžããã¹ãïŒRESULT = 0ïŒ | |
MOVE_GROUP_TO_GROUP | ãã®æé ã¯ãæå®ãããã°ã«ãŒããšãã®å å®¹å šäœïŒãµãã°ã«ãŒããšãã¹ããããã«ãŒãïŒãå¥ã®æå®ãããã°ã«ãŒãã«è»¢éããŸãã | ||
å ¥åãã©ã¡ãŒã¿ãŒïŒ | |||
SRC_GRID | æŽæ° | 移è¡ããã°ã«ãŒãID | |
DST_GRID | æŽæ° | ãœãŒã¹ã°ã«ãŒãã®è»¢éå ã°ã«ãŒãã®ID | |
åºåãã©ã¡ãŒã¿ãŒïŒ | |||
çµæ | æŽæ° | ã°ã«ãŒãIDïŒSRC_GRIDïŒïŒç§»è¡ãããå ŽåïŒã
0-ã°ã«ãŒã転éãè¡ãããªãã£ãå ŽåïŒè»¢éãããªãã£ãå ŽåïŒ | |
ERRMSG | VARCHARïŒ255ïŒ | ãšã©ãŒãçºçããå Žåã®ãšã©ãŒã¡ãã»ãŒãžããã¹ãïŒRESULT = 0ïŒ | |
MOVE_GROUP_CONTENTS_TO_GROUP | ãã®æé ã¯ãæå®ãããã°ã«ãŒãïŒãµãã°ã«ãŒããšãã¹ããããã«ãŒãïŒã®å 容ãå¥ã®æå®ãããã°ã«ãŒãã«è»¢éããŸãã ãã®å Žåãå ã®ã°ã«ãŒãèªäœã¯åãå Žæã«æ®ããŸãã | ||
å ¥åãã©ã¡ãŒã¿ãŒïŒ | |||
SRC_GRID | æŽæ° | ã³ã³ãã³ãã転éããã°ã«ãŒãã®ID | |
DST_GRID | æŽæ° | ã°ã«ãŒãã®ã³ã³ãã³ãã転éããã°ã«ãŒãã®ID | |
åºåãã©ã¡ãŒã¿ãŒïŒ | |||
çµæ | æŽæ° | å
容ã移è¡ãããå Žåãã°ã«ãŒãèå¥åïŒSRC_GRIDïŒã
0-ã°ã«ãŒãã³ã³ãã³ãã®è»¢éãè¡ãããªãã£ãå Žå | |
ERRMSG | VARCHARïŒ255ïŒ | ãšã©ãŒãçºçããå Žåã®ãšã©ãŒã¡ãã»ãŒãžããã¹ãïŒRESULT = 0ïŒ | |
MOVE_CARD_TO_GROUP | æé ã¯ãæå®ãããã°ã«ãŒãã«ã«ãŒãã転éããŸãã | ||
å ¥åãã©ã¡ãŒã¿ãŒïŒ | |||
SRC_CDID | æŽæ° | è²æž¡ããã«ãŒãã®ID | |
DST_GRID | æŽæ° | ã«ãŒãã®è»¢éå ã°ã«ãŒãã®ID | |
åºåãã©ã¡ãŒã¿ãŒïŒ | |||
çµæ | æŽæ° | ã«ãŒãIDïŒSRC_CDIDïŒã転éãããå Žå;
0-ã«ãŒãã®è»¢éãè¡ãããªãã£ãå ŽåïŒè»¢éãããªãã£ãå ŽåïŒ | |
ERRMSG | VARCHARïŒ255ïŒ | ãšã©ãŒãçºçããå Žåã®ãšã©ãŒã¡ãã»ãŒãžããã¹ãïŒRESULT = 0ïŒ | |
TEST_GROUP_PARENT_HIERARCHY | ãã®ããã·ãŒãžã£ã¯ãPGRIDã°ã«ãŒããéå±€ïŒããããè€æ°ã®äžéããŒããä»ããŠïŒGRIDã°ã«ãŒãã®èŠªã§ãããã©ããããã§ãã¯ããŸãã ãã®ããã·ãŒãžã£ã¯ããã°ã©ã ããåŒã³åºãããŸããããä»ã®ããã·ãŒãžã£ã§äœ¿çšãããŸãã | ||
å ¥åãã©ã¡ãŒã¿ãŒïŒ | |||
ã°ãªãã | æŽæ° | PGRIDã°ã«ãŒãã®ãšã³ããªã確èªããå¿ èŠãããã°ã«ãŒãã®èå¥å | |
PGRID | æŽæ° | ã°ãªããã°ã«ãŒãããã§ãã¯ããå¿ èŠãããã°ã«ãŒãèå¥å | |
åºåãã©ã¡ãŒã¿ãŒïŒ | |||
çµæ | å°å | ãã¹ãçµæïŒ
1-PGRIDã°ã«ãŒããGRIDã°ã«ãŒãã®éå±€çãªèŠªã§ããå Žå; 0-PGRIDã°ã«ãŒããGRIDã°ã«ãŒãã®èŠªã§ã¯ãªãå Žå |
ã«ãŒãïŒSAVE_CARDãDELETE_CARDïŒããã³ãŠãŒã¶ãŒïŒSAVE_USERãDELETE_USERïŒãæäœããæé ã¯ãããŸããã ãããã®æ©èœã1Cã«çŽæ¥å®è£ ãã1Cããã®åŒã³åºããã¹ãã¢ãããã·ãŒãžã£ã ãã§ãªããããŸããŸãªã¯ãšãªã衚瀺ããŸãã
ããã°ã©ã å ã®æ å ±ã·ã¹ãã ã®ãšã³ãã£ãã£ã®è¡šçŸã
ã·ã¹ãã ã«ã¯ã次ã®æ å ±ãšã³ãã£ãã£ããããŸãã
-é£çµ¡å ã®ãã£ã¬ã¯ããªã®ã°ã«ãŒã ïŒã°ã«ãŒãã®ããªãŒïŒãµãããªãŒïŒã圢æããã°ã«ãŒãã®ã»ãã-GROUPSããŒãã«ã®ããŒã¿ã®å®å šãŸãã¯éšåçãªè¡šçŸïŒ
-é£çµ¡å ãã£ã¬ã¯ããªã®èŠçŽ ïŒã«ãŒãïŒïŒã«ãŒãã®ã»ãã-CARDSããŒãã«å ã®ããŒã¿ã®å®å šãŸãã¯éšåçãªè¡šç€ºïŒ;
-ã·ã¹ãã ã¢ã«ãŠã³ã ïŒ ã¢ã«ãŠã³ãã®ã»ãã-USERSããŒãã«ããŒã¿ã®å®å šãŸãã¯éšåçãªè¡šç€ºïŒ
ã¢ãã«ã¯ã次ã®ã¯ã©ã¹ã®1Cã³ãŒãã§æ瀺ãããŸãã
-BaseObjïŒBase EssenceïŒ -ã¯ã©ã¹-ãã®ã°ã«ãŒãã®ä»ã®ãã¹ãŠã®ã¯ã©ã¹ã®æœè±¡èŠªã å ±éã®ãã£ãŒã«ããšã¡ãœãããå«ãŸããŠããŸãã
-ObjGroupïŒEntityGroupïŒ-BaseObjã®åå«ã¯ããšã³ãã£ãã£ã contact directory group ãã®å®è£ ãè¡šããŸãã
-ObjCardïŒãšã³ãã£ãã£ã«ãŒãïŒ -BaseObjã®åå«ã§ããããšã³ãã£ãã£ã contact directory element ãã®å®è£ ãè¡šããŸãã
-ObjUserïŒEntityUserïŒ-BaseObjã®åå«ã§ããããšã³ãã£ãã£ã user of the system ãã®å®è£ ãè¡šããŸãã
-ObjSetïŒãªããžã§ã¯ãã®ã»ããïŒãBaseObjã®åå«ã§ããããšã³ãã£ãã£ã§ã¯ãªãããšã³ãã£ãã£ã®ãŠãããŒãµã«ã³ã¬ã¯ã·ã§ã³ã§ãããä»»æã®ã¿ã€ãïŒObjGroupãObjCardãObjUserïŒã®ãªããžã§ã¯ãã®ã³ã¬ã¯ã·ã§ã³ãšããŠè¡šãããšãã§ããŸãã åœç¶ã1ã€ã®ã»ããã«ç°ãªãã¿ã€ãã®ãšã³ãã£ãã£ãæ··åšãããããšã¯ã§ããŸããã
1Cã§ã®ãããã®ã¯ã©ã¹ã®å¯Ÿå¿ããå®è£ ã¯æ¬¡ã®ããã«ãªããŸãã
ã¯ã©ã¹ã³ãŒã
/////////////////////////////////////////////////////////////////////////////////////////////////// // // // /////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// // (BaseObj) // . // // : // . // : // // BaseObj_() BaseObj = ; // BaseObj.("ClassID", 0); // (INT) BaseObj.("ChangeInfo", );// BaseObj.("ErrMsg", ""); // (STR) BaseObj.ClassID = .ClassIDs.CLN_UNKNOWN; // BaseObj; // . // // : // ClassID - , . , // - // : // () - // BaseObj_(ClassID=0) BaseObj = ; ClassID = .ClassIDs.CLN_GROUP // ObjGroup BaseObj = ObjGroup_() ClassID = .ClassIDs.CLN_CARD // ObjCard BaseObj = ObjCard_() ClassID = .ClassIDs.CLN_USER // ObjUser BaseObj = ObjUser_() ; BaseObj = // BaseObj = BaseObj_(); ; BaseObj; // - . // // : // BaseObj - , // BaseObj_(BaseObj) BaseObj.ClassID = .ClassIDs.CLN_GROUP // ObjGroup ObjGroup_(BaseObj) BaseObj.ClassID = .ClassIDs.CLN_CARD // ObjCard ObjCard_(BaseObj) BaseObj.ClassID = .ClassIDs.CLN_USER // ObjUser ObjUser_(BaseObj) // . // // : // BaseObj - // BaseObj_SetDefAttr(BaseObj) BaseObj.ErrMsg = ""; BaseObj.ClassID = .ClassIDs.CLN_GROUP // ObjGroup ObjGroup_SetDefAttr(BaseObj) BaseObj.ClassID = .ClassIDs.CLN_CARD // ObjCard ObjCard_SetDefAttr(BaseObj) BaseObj.ClassID = .ClassIDs.CLN_USER // ObjUser ObjUser_SetDefAttr(BaseObj) // BaseObj2 BaseObj1. // BaseObj1 . // // : // BaseObj1 - // BaseObj2 - // BaseObj_Assign(BaseObj1, BaseObj2) (BaseObj1 <> ) (BaseObj2 <> ) (BaseObj1.ClassID = BaseObj2.ClassID) (BaseObj_IsEqual(BaseObj1, BaseObj2) = ) BaseObj1.ClassID = .ClassIDs.CLN_GROUP // ObjGroup ObjGroup_Assign(BaseObj1, BaseObj2) BaseObj1.ClassID = .ClassIDs.CLN_CARD // ObjCard ObjCard_Assign(BaseObj1, BaseObj2) BaseObj1.ClassID = .ClassIDs.CLN_USER // ObjUser ObjUser_Assign(BaseObj1, BaseObj2) // . // // : // BaseObj1 - // BaseObj2 - // // , BaseObj2 , // BaseObj1 - // BaseObj_IsEqual(BaseObj1, BaseObj2) = ; (BaseObj1 <> ) (BaseObj2 <> ) (BaseObj1.ClassID = BaseObj2.ClassID) BaseObj1.ClassID = .ClassIDs.CLN_GROUP // ObjGroup = ObjGroup_IsEqual(BaseObj1, BaseObj2) BaseObj1.ClassID = .ClassIDs.CLN_CARD // ObjCard = ObjCard_IsEqual(BaseObj1, BaseObj2) BaseObj1.ClassID = .ClassIDs.CLN_USER // ObjUser = ObjUser_IsEqual(BaseObj1, BaseObj2) ; // . // // : // BaseObj1 - // BaseObj2 - // // , BaseObj2 , // BaseObj1 - // BaseObj_IsEqualKeys(BaseObj1, BaseObj2) = ; (BaseObj1 <> ) (BaseObj2 <> ) (BaseObj1.ClassID = BaseObj2.ClassID) BaseObj1.ClassID = .ClassIDs.CLN_GROUP // ObjGroup = ObjGroup_IsEqualKeys(BaseObj1, BaseObj2) BaseObj1.ClassID = .ClassIDs.CLN_CARD // ObjCard = ObjCard_IsEqualKeys(BaseObj1, BaseObj2) BaseObj1.ClassID = .ClassIDs.CLN_USER // ObjUser = ObjUser_IsEqualKeys(BaseObj1, BaseObj2) ; // , (), // .. , . // // : // BaseObj - // // , BaseObj - // BaseObj_IsKeyEmpty(BaseObj) = ; BaseObj <> BaseObj.ClassID = .ClassIDs.CLN_GROUP // ObjGroup = ObjGroup_IsKeyEmpty(BaseObj) BaseObj.ClassID = .ClassIDs.CLN_CARD // ObjCard = ObjCard_IsKeyEmpty(BaseObj) BaseObj.ClassID = .ClassIDs.CLN_USER // ObjUser = ObjUser_IsKeyEmpty(BaseObj) ; // . // // : // BaseObj - // BaseObj_GetErrorMsg(BaseObj) BaseObj.ErrMsg // . // // : // BaseObj - // // // BaseObj_GetChangeInfo(BaseObj) BaseObj.ChangeInfo // // . // // : // BaseObj - // ChangeInfo - // BaseObj_SetChangeInfo(BaseObj, ChangeInfo) BaseObj <> BaseObj.ClassID = .ClassIDs.CLN_GROUP // ObjGroup ObjGroup_SetChangeInfo(BaseObj, ChangeInfo) BaseObj.ClassID = .ClassIDs.CLN_CARD // ObjCard ObjCard_SetChangeInfo(BaseObj, ChangeInfo) BaseObj.ClassID = .ClassIDs.CLN_USER // ObjUser ObjUser_SetChangeInfo(BaseObj, ChangeInfo) // DS. // // : // BaseObj - // DS - ADORecordSet // : // , , // BaseObj_LoadFromDataSet(BaseObj, DS) = ; // BaseObj.ErrMsg = ""; // , BaseObj.ClassID = .ClassIDs.CLN_GROUP // ObjGroup = ObjGroup_LoadFromDataSet(BaseObj, DS) BaseObj.ClassID = .ClassIDs.CLN_CARD // ObjCard = ObjCard_LoadFromDataSet(BaseObj, DS) BaseObj.ClassID = .ClassIDs.CLN_USER // ObjUser = ObjUser_LoadFromDataSet(BaseObj, DS) ; //////////////////////////////////////////////////////////////////////////////// // (ObjSet) - BaseObj // ( - ClassID , // ) // . // // : // . // : // // ObjSet_() ObjSet = BaseObj_(); // ObjSet.("ItemsList", ); // ObjSet; // . // // : // ClassID - , . // : // () - // ObjSet_(ClassID=0) ObjSet = ObjSet_(); ObjSet.ClassID = ClassID; // ObjSet_SetDefAttr(ObjSet); ObjSet; // - . // // : // ObjSet - // ObjSet_(ObjSet) ObjSet_Clear(ObjSet) // . // // : // ObjSet - // ObjSet_SetDefAttr(ObjSet) ObjSet.ErrMsg = "" // Obj ObjSet. // // : // ObjSet - // Obj - , // : // , Obj ObjSet - // ObjSet_TestItemForAdd(ObjSet, Obj) = ; // ObjSet.ErrMsg = ""; Obj <> ObjSet.ClassID = Obj.ClassID // = ; ObjSet.ItemsList BaseObj_IsEqualKeys(, Obj) = ; ; = ObjSet.ErrMsg = " " ObjSet.ErrMsg = " " ObjSet.ErrMsg = " " ; // - . // // : // ObjSet - // : // // ObjSet_GetCount(ObjSet) ObjSet.ItemsList.() // Index ( 0). // // : // ObjSet - // Index - // : // ( Index) , // // ObjSet_GetItemByIndex(ObjSet, Index) = ; ObjSet.ErrMsg = ""; (Index >= 0) (Index < ObjSet.ItemsList.()) = ObjSet.ItemsList[Index] ObjSet.ErrMsg = " "; ; // Index ( 0), // . // // : // ObjSet - // Index - // Obj - // : // , , // // ObjSet_SetItemToIndex(ObjSet, Index, Obj) = ; ObjSet.ErrMsg = ""; Obj <> ObjSet.ClassID = Obj.ClassID (Index >= 0) (Index < ObjSet.ItemsList.()) // , // BaseObj_IsKeyEmpty(Obj) // ( ) - = BaseObj_IsEqualKeys(ObjSet.ItemsList[Index], Obj) // , - = // = ; ObjSet.ItemsList BaseObj_IsEqualKeys(, Obj) = ; ; = ObjSet.ErrMsg = " " ; // // - BaseObj_Assign(ObjSet.ItemsList[Index], Obj) ObjSet.ErrMsg = " " ObjSet.ErrMsg = " " ObjSet.ErrMsg = " " ; // Obj . // // : // ObjSet - // Obj - // : // , - // ObjSet_Add(ObjSet, Obj) = ; ObjSet.ErrMsg = ""; Obj <> // ObjSet_TestItemForAdd(ObjSet, Obj) // ObjSet.ItemsList.(Obj); ObjSet.ChangeInfo = ; = // ObjSet.ErrMsg = " " ; // . // // : // ObjSet - // Index - ( 0) // : // , - // ObjSet_Delete(ObjSet, Index) = ; ObjSet.ErrMsg = ""; (Index >= 0) (Index < ObjSet.ItemsList.()) BaseObj_(ObjSet.ItemsList[Index]); ObjSet.ItemsList.(Index); = ObjSet.ErrMsg = " "; ; // . // // : // ObjSet - // : // ObjSet_Clear(ObjSet) ObjSet.ItemsList.() > 0 Item ObjSet.ItemsList BaseObj_(Item); ; ObjSet.ItemsList.(); ObjSet.ChangeInfo = // // // // : // ObjSet - // : // // ObjSet_GetChangeInfo(ObjSet) ObjSet.ChangeInfo // , Item ObjSet.ItemsList BaseObj_GetChangeInfo(Item) ObjSet.ChangeInfo = ; ; ObjSet.ChangeInfo // // ChangeInfo // // : // ObjSet - // ChangeInfo - // ObjSet_SetChangeInfo(ObjSet, ChangeInfo) ObjSet.ChangeInfo = ChangeInfo; ChangeInfo Item ObjSet.ItemsList BaseObj_SetChangeInfo(Item, ChangeInfo) // // // // : // ObjSet - // : // // ObjSet_GetErrorMsg(ObjSet) ObjSet.ErrMsg = "" // , Item ObjSet.ItemsList Item.ErrMsg <> "" ObjSet.ErrMsg = Item.ErrMsg; ; ObjSet.ErrMsg // . // // : // ObjSet - // : // , - // ObjSet_TestSet(ObjSet) = ; // ObjSet.ErrMsg = ""; // (ObjSet.ClassID = .ClassIDs.CLN_GROUP) (ObjSet.ClassID = .ClassIDs.CLN_CARD) (ObjSet.ClassID = .ClassIDs.CLN_USER) // 1=0 ObjSet.ItemsList.()-1 1 = ObjSet.ItemsList[1]; ObjSet.ClassID = 1.ClassID = ; 2=1+1 ObjSet.ItemsList.()-1 2 = ObjSet.ItemsList[2]; BaseObj_IsEqualKeys(1, 2) = ; ; ObjSet.ErrMsg = " "; // ObjSet.ErrMsg = " " // ObjSet.ErrMsg = " " ; // ObjSet.ErrMsg = "" = ; // DS. . // // ( ) // . // : // ObjSet - // DS - ADORecordSet // RowCount - , // ( RowCount=-1, // ) // : // // ObjSet_LoadFromDataSet(ObjSet, DS, RowCount=-1) = 0; ObjSet.ErrMsg = ""; ObjSet_Clear(ObjSet); ObjSet.ErrMsg = "" = ObjSet_AddFromDataSet(ObjSet, DS, RowCount) ; // DS, . // // ( ) // . // : // ObjSet - // DS - ADORecordSet // RowCount - , // ( RowCount=-1, // ) // : // // ObjSet_AddFromDataSet(ObjSet, DS, RowCount=-1) = 0; ObjSet.ErrMsg = ""; RowCount <> 0 (DS.EOF = 0) ((RowCount < 0) ( < RowCount)) // Obj = BaseObj_(ObjSet.ClassID); Obj <> // BaseObj_LoadFromDataSet(Obj, DS) // - ObjSet_Add(ObjSet, Obj) // = + 1 // // - ObjSet.ErrMsg = Obj.ErrMsg; BaseObj_(Obj); // ObjSet.ErrMsg = " " ; // DS.MoveNext(); ; //////////////////////////////////////////////////////////////////////////////// // (ObjGroup) // . // // : // . // : // // ObjGroup_() ObjGroup = BaseObj_(); ObjGroup.ClassID = .ClassIDs.CLN_GROUP; // ObjGroup // ObjGroup.("GRID", ); // (INT) ObjGroup.("PGRID", ); // (INT) ObjGroup.("GRName", ); // (STR) ObjGroup; // . // // : // . // : // () - // ObjGroup_() ObjGroup = ObjGroup_(); // ObjGroup_SetDefAttr(ObjGroup); ObjGroup; // - . // // : // ObjGroup - // ObjGroup_(ObjGroup) // . // // : // ObjGroup - // ObjGroup_SetDefAttr(ObjGroup) ObjGroup.GRID = 0; ObjGroup.PGRID = 0; ObjGroup.GRName = ""; // ObjGroup2 ObjGroup1. // ObjGroup1 . // // : // ObjGroup1 - // ObjGroup2 - // ObjGroup_Assign(ObjGroup1, ObjGroup2) (ObjGroup1 <> ) (ObjGroup2 <> ) (ObjGroup_IsEqual(ObjGroup1, ObjGroup2) = ) ObjGroup1.GRID = ObjGroup2.GRID; ObjGroup1.PGRID = ObjGroup2.PGRID; ObjGroup1.GRName = ObjGroup2.GRName; ObjGroup1.ChangeInfo = // , ObjGroup2 , // ObjGroup1 - // // : // ObjGroup1 - // ObjGroup2 - // : // , - // ObjGroup_IsEqual(ObjGroup1, ObjGroup2) IsEqual = ; (ObjGroup1 <> ) (ObjGroup2 <> ) (ObjGroup2.GRID = ObjGroup1.GRID) (ObjGroup2.PGRID = ObjGroup1.PGRID) (ObjGroup2.GRName = ObjGroup1.GRName) IsEqual = // ; IsEqual // . // // : // ObjGroup1 - // ObjGroup2 - // // , ObjGroup2 , // ObjGroup1 - // ObjGroup_IsEqualKeys(ObjGroup1, ObjGroup2) IsEqual = ; (ObjGroup1 <> ) (ObjGroup2 <> ) ((ObjGroup2.GRID = ObjGroup1.GRID) (ObjGroup1.GRID > 0)) IsEqual = // ; IsEqual // , (), // .. , . // // : // ObjGroup - // // , ObjGroup - // ObjGroup_IsKeyEmpty(ObjGroup) = ; IsEmpty = ; ObjGroup <> ObjGroup.GRID <= 0 IsEmpty = ; IsEmpty // . // // : // ObjGroup - // GRID - // PGRID - // GRName - // ObjGroup_SetAttr(ObjGroup, GRID, PGRID, GRName) // , , // TmpObjGroup = ObjGroup_(); TmpObjGroup.GRID = GRID; TmpObjGroup.PGRID = PGRID; TmpObjGroup.GRName = GRName; ObjGroup_Assign(ObjGroup, TmpObjGroup); ObjGroup_(TmpObjGroup); // // . // // : // ObjGroup - // ChangeInfo - // ObjGroup_SetChangeInfo(ObjGroup, ChangeInfo) ObjGroup.ChangeInfo = ChangeInfo // DS. // // : // ObjGroup - // DS - ADORecordSet // : // , , // ObjGroup_LoadFromDataSet(ObjGroup, DS) = ; // ObjGroup.ErrMsg = ""; ObjGroup.GRID = DS.Fields("GRID").Value; ObjGroup.PGRID = DS.Fields("PGRID").Value; ObjGroup.GRName = DS.Fields("GRNAME").Value; ObjGroup_SetChangeInfo(ObjGroup, ); // , .. // = ; // // ObjGroup.ErrMsg = ().; ; //////////////////////////////////////////////////////////////////////////////// // (ObjCard) // . // // : // . // : // // ObjCard_() ObjCard = BaseObj_(); ObjCard.ClassID = .ClassIDs.CLN_CARD; // ObjCard // ObjCard.("CDID", ); // (INT) ObjCard.("GRID", ); // (INT) ObjCard.("CDName", ); // (STR) ObjCard.("CDDescript", ); // (STR) ObjCard.("CDContacts", ); // (STR) ObjCard.("CDNote", ); // (STR) ObjCard.("CDImage", );// () // , BLOB- ObjCard.("ChangeCDContacts", );// CDContacts ObjCard.("ChangeCDNote", ); // CDNote ObjCard.("ChangeCDImage", ); // CDImage ObjCard; // . // // : // . // : // () - // ObjCard_() ObjCard = ObjCard_(); // ObjCard_SetDefAttr(ObjCard); ObjCard; // - . // // : // ObjCard - // ObjCard_(ObjCard) // . // // : // ObjCard - // ObjCard_SetDefAttr(ObjCard) ObjCard.CDID = 0; ObjCard.GRID = 0; ObjCard.CDName = ""; ObjCard.CDDescript = ; ObjCard.CDContacts = ; ObjCard.CDNote = ; ObjCard.CDImage = ; ObjCard.ChangeCDContacts = ; ObjCard.ChangeCDNote = ; ObjCard.ChangeCDImage = ; // ObjCard2 ObjCard1. // ObjCard1 . // // : // ObjCard1 - // ObjCard2 - // ObjCard_Assign(ObjCard1, ObjCard2) (ObjCard1 <> ) (ObjCard2 <> ) (ObjCard_IsEqual(ObjCard1, ObjCard2) = ) ObjCard1.CDID = ObjCard2.CDID; ObjCard1.GRID = ObjCard2.GRID; ObjCard1.CDName = ObjCard2.CDName; ObjCard1.CDDescript = ObjCard2.CDDescript; ObjCard1.CDContacts <> ObjCard2.CDContacts ObjCard1.CDContacts = ObjCard2.CDContacts; ObjCard1.ChangeCDContacts = ; ObjCard1.CDNote <> ObjCard2.CDNote ObjCard1.CDNote = ObjCard2.CDNote; ObjCard1.ChangeCDNote = ; (ObjCard1.CDImage, ObjCard2.CDImage) ObjCard1.CDImage= ObjCard2.CDImage; ObjCard1.ChangeCDImage = ; ObjCard1.ChangeInfo = // , ObjCard2 , // ObjCard1 - // // : // ObjCard1 - // ObjCard2 - // : // , - // ObjCard_IsEqual(ObjCard1, ObjCard2) IsEqual = ; (ObjCard1 <> ) (ObjCard2 <> ) (ObjCard2.CDID = ObjCard1.CDID) (ObjCard2.GRID = ObjCard1.GRID) (ObjCard2.CDName = ObjCard1.CDName) (ObjCard2.CDDescript = ObjCard1.CDDescript) (ObjCard2.CDContacts = ObjCard1.CDContacts) (ObjCard2.CDNote = ObjCard1.CDNote) (ObjCard2.CDImage, ObjCard1.CDImage) IsEqual = // ; IsEqual // . // // : // ObjCard1 - // ObjCard2 - // // , ObjCard2 , // ObjCard1 - // ObjCard_IsEqualKeys(ObjCard1, ObjCard2) IsEqual = ; (ObjCard1 <> ) (ObjCard2 <> ) ((ObjCard2.CDID = ObjCard1.CDID) (ObjCard1.CDID > 0)) IsEqual = // ; IsEqual // , (), // .. , . // // : // ObjCard - // // , ObjCard - // ObjCard_IsKeyEmpty(ObjCard) = ; IsEmpty = ; ObjCard <> ObjCard.CDID <= 0 IsEmpty = ; IsEmpty // . // // : // ObjCard - // CDID - // GRID - // GRName - // CDDescript - // CDContacts - // CDNote - // CDImage - // ObjCard_SetAttr(ObjCard, CDID, GRID, CDName, CDDescript = , CDContacts = , CDNote = , CDImage = ) // , , // TmpObjCard = ObjCard_(); TmpObjCard.CDID = CDID; TmpObjCard.GRID = GRID; TmpObjCard.CDName = CDName; CDDescript <> TmpObjCard.CDDescript = CDDescript; ; CDContacts <> TmpObjCard.CDContacts = CDContacts; ; CDNote <> TmpObjCard.CDNote = CDNote ; CDImage <> TmpObjCard.CDImage = CDImage; ; ObjCard_Assign(ObjCard, TmpObjCard); ObjCard_(TmpObjCard); // // . // // : // ObjCard - // ChangeInfo - // ObjCard_SetChangeInfo(ObjCard, ChangeInfo) ObjCard.ChangeInfo = ChangeInfo; ChangeInfo = ObjCard.ChangeCDContacts = ; ObjCard.ChangeCDNote = ; ObjCard.ChangeCDImage = // DS. // // : // ObjCard - // DS - ADORecordSet // : // , , // ObjCard_LoadFromDataSet(ObjCard, DS) = ; // ObjCard.ErrMsg = ""; ObjCard.CDID = DS.Fields("CDID").Value; ; ObjCard.GRID = DS.Fields("GRID").Value; ; ObjCard.CDName = DS.Fields("CDNAME").Value; ; ObjCard.CDDescript = DS.Fields("CDDESCRIPT").Value; ; ObjCard.CDContacts = DS.Fields("CDCONTACTS").Value; ; CDNoteArray = DS.Fields("CDNOTE").Value; ObjCard.CDNote = COMSafeArrayWIN1251_UTF8(CDNoteArray); ; CDImageArray = DS.Fields("CDIMAGE").Value; ObjCard.CDImage = COMSafeArray_(CDImageArray) ; ObjCard_SetChangeInfo(ObjCard, ); // , .. // = ; // // ObjCard.ErrMsg = ().; ; //////////////////////////////////////////////////////////////////////////////// // (ObjUser) // . // // : // . // : // // ObjUser_() ObjUser = BaseObj_(); ObjUser.ClassID = .ClassIDs.CLN_USER; // ObjUser // ObjUser.("UID", ); // (INT) ObjUser.("UName", ); // (STR) ObjUser.("UPwd", ); // (STR) ObjUser.("URights", ); // (STR) ObjUser; // . // // : // . // : // () - // ObjUser_() ObjUser = ObjUser_(); // ObjUser_SetDefAttr(ObjUser); ObjUser; // - . // // : // ObjUser - // ObjUser_(ObjUser) // . // // : // ObjUser - // ObjUser_SetDefAttr(ObjUser) ObjUser.UID = 0; ObjUser.UName = ""; ObjUser.UPwd = ; ObjUser.URights = ""; // ObjUser2 ObjUser1. // ObjUser1 . // // : // ObjUser1 - // ObjUser2 - // ObjUser_Assign(ObjUser1, ObjUser2) (ObjUser1 <> ) (ObjUser2 <> ) (ObjUser_IsEqual(ObjUser1, ObjUser2) = ) ObjUser1.UID = ObjUser2.UID; ObjUser1.UName = ObjUser2.UName; ObjUser1.UPwd = ObjUser2.UPwd; ObjUser1.URights = ObjUser2.URights; ObjUser1.ChangeInfo = // , ObjUser2 , // ObjUser1 - // // : // ObjUser1 - // ObjUser2 - // : // , - // ObjUser_IsEqual(ObjUser1, ObjUser2) IsEqual = ; (ObjUser1 <> ) (ObjUser2 <> ) (ObjUser2.UID = ObjUser1.UID) (ObjUser2.UName = ObjUser1.UName) (ObjUser2.UPwd = ObjUser1.UPwd) IsEqualUserRights(ObjUser2.URights, ObjUser1.URights) IsEqual = // ; IsEqual // . // // : // ObjUser1 - // ObjUser2 - // // , ObjUser2 , // ObjUser1 - // ObjUser_IsEqualKeys(ObjUser1, ObjUser2) IsEqual = ; (ObjUser1 <> ) (ObjUser2 <> ) ((ObjUser2.UID = ObjUser1.UID) (ObjUser1.UID > 0)) ((ObjUser2.UName) = (ObjUser1.UName)) IsEqual = // ; IsEqual // , (), // .. , . // // : // ObjUser - // // , ObjUser - // ObjUser_IsKeyEmpty(ObjUser) = ; IsEmpty = ; ObjUser <> (ObjUser.UID <= 0) ((ObjUser) = "") IsEmpty = ; IsEmpty // . // // : // ObjUser - // UID - // UName - // UPwd - // URights - // ObjUser_SetAttr(ObjUser, UID, UName, UPwd, URights) // , , // TmpObjUser = ObjUser_(); TmpObjUser.UID = UID; TmpObjUser.UName = UName; TmpObjUser.UPwd = UPwd; TmpObjUser.URights = URights; ObjUser_Assign(ObjUser, TmpObjUser); ObjUser_(TmpObjUser); // // . // // : // ObjUser - // ChangeInfo - // ObjUser_SetChangeInfo(ObjUser, ChangeInfo) ObjUser.ChangeInfo = ChangeInfo // DS. // // : // ObjUser - // DS - ADORecordSet // : // , , // ObjUser_LoadFromDataSet(ObjUser, DS) = ; // ObjUser.ErrMsg = ""; ObjUser.UID = DS.Fields("UID").Value; ObjUser.UName = DS.Fields("UNAME").Value; //ObjUser.UPwd = DS.Fields("UPWD").Value; // ObjUser.UPwd = ; ObjUser.URights = DS.Fields("URIGHTS").Value; ObjUser_SetChangeInfo(ObjUser, ); // , .. // = ; // // ObjUser.ErrMsg = ().; ;
ããŒã¿ããŒã¹ãæäœããŸãã ADOãã¯ãããžãŒã
ããŒã¿ããŒã¹ã«ã¢ã¯ã»ã¹ããããã«ã1Cã«é¢ããŠã€ã³ã¿ãŒãããäžã§æããã説æãããŠãããã¯ãããžãŒïŒã Microsoft ADO ãïŒã䜿çšããŸãã ãããŠãããã¯ãã¡ããåççã§ãããªããªã ãã®ãã¯ãããžãŒã¯ãWindowsãæèŒããã³ã³ãã¥ãŒã¿ãŒã§æãå®å®ããŠå©çšã§ããŸãã ããã¯1Cã ãã§ãªãã Visual Studioãªã©ã®ä»ã®éçºããŒã«ã«ãé¢ä¿ããŸãã ããã¯ãããŸããŸãªããŒã¿ããŒã¹ãã¯ãããžã«æ £ããŠããDelphiããã°ã©ãã§ãã ä»ã®éçºè ã«ãšã£ãŠãããŒã«ã®éžæã¯ããå¶éãããŠããŸãã éå»10ã15幎ã«ããã£ãŠå€ãã®åªããèšäºãã€ã³ã¿ãŒãããäžã«èç©ãããŠãããããADOã«ã€ããŠã¯èª¬æããŸããã ãã®èšäºã§èª¬æããå®è£ ã«å¿ èŠãªã€ã³ã¿ãŒãã§ã€ã¹ãšããŒã¿åãæ€èšããŸãïŒè©³çŽ°ã«ã€ããŠã¯ãMSDNã®ããã¥ã¡ã³ããåç §ããŠãã ããïŒã
ã€ã³ã¿ãŒãã§ãŒã¹å | 説æ | 䜿çšãããããããã£ãšã¡ãœãã |
---|---|---|
æ¥ç¶ | ããŒã¿ããŒã¹ãžã®æ¥ç¶ãæäŸããŸãã | ç¶æ
ïŒããããã£ïŒ-æ¥ç¶ã®çŸåšã®ç¶æ
ïŒã€ã³ã¹ããŒã«ãããŠãããã©ããïŒã瀺ããŸãã
Open ïŒã¡ãœããïŒ-ããŒã¿ããŒã¹ãžã®æ¥ç¶ã確ç«ã§ããŸãã éãã ïŒã¡ãœããïŒ-ããŒã¿ããŒã¹ããåæããŸã |
ã³ãã³ã | æå®ãããæ¥ç¶ïŒConnectionïŒå ã§ã³ãã³ãã®å®è¡ãæäŸããŸãïŒSQLã¯ãšãªã«ã®ã¿é¢å¿ããããŸãïŒã | ActiveConnection ïŒããããã£ïŒ-ã³ãã³ãå®è¡ãªããžã§ã¯ããé¢é£ä»ããããŠããæ¥ç¶ã瀺ããŸãã
CommandType ïŒããããã£ïŒ-ã³ãã³ãã®ã¿ã€ãã瀺ããŸãïŒã¿ã€ãã«èå³ããããŸã-ãSQLã¯ãšãªãïŒ; CommandText ïŒããããã£ïŒ-ã³ãã³ãããã¹ãïŒãã®å Žåããªã¯ãšã¹ãããã¹ãïŒ; ãã©ã¡ãŒã¿ ïŒããããã£ïŒ-ããŒã¿ããŒã¹ã«ããŒã¿ãéä¿¡ããããã®ã³ãã³ãïŒãªã¯ãšã¹ãïŒãã©ã¡ãŒã¿ã®ã³ã¬ã¯ã·ã§ã³ã å®è¡ ïŒã¡ãœããïŒ-ã³ãã³ãïŒèŠæ±ïŒãå®è¡ããŸãã çµæã®ããŒã¿ã»ãããè¿ããŸãã CreateParameter ïŒã¡ãœããïŒ-ã³ãã³ãïŒãªã¯ãšã¹ãïŒã®æ°ãããã©ã¡ãŒã¿ãŒãäœæã§ããŸã |
ã¬ã³ãŒãã»ãã | ã¯ãšãªã®çµæãšããŠååŸãããããŒã¿ã»ããïŒããŒãã«ïŒã ããŒã¿ããŒã¹ããã¯ã©ã€ã¢ã³ãã¢ããªã±ãŒã·ã§ã³ãžã®ããŒã¿è»¢éãæäŸããŸãã | ç¶æ
ïŒããããã£ïŒ-ããŒã¿ã»ããã®ç¶æ
ïŒå©çšå¯èœãã©ããïŒã瀺ããŸãã
EOF ïŒããããã£ïŒ-ããŒã¿ã»ããã®çµããã®ãµã€ã³ïŒå éšãã€ã³ã¿ãã»ããã®æåŸã®è¡ã«ãããã©ããã瀺ããŸãïŒ; ãã£ãŒã«ã ïŒããããã£ïŒ-ãã£ãŒã«ãã®ã³ã¬ã¯ã·ã§ã³-ã»ããã®çŸåšã®è¡ã®åãžã®ã¢ã¯ã»ã¹ã MoveNext ïŒã¡ãœããïŒ-ã»ããã®å éšãã€ã³ã¿ãŒãã»ããã®çµããã®æ¹åã«1è¡ç§»åããŸãã Close ïŒã¡ãœããïŒ-ããŒã¿ã»ãããéããŸã |
ãã£ãŒã«ã | ããŒã¿ã»ããå ã®çŸåšã®è¡ã®ãã£ãŒã«ããžã®ã¢ã¯ã»ã¹ãæäŸãããã£ãŒã«ãã®ã³ã¬ã¯ã·ã§ã³ã | FieldsïŒFieldIndïŒ ã FieldsïŒFieldNameïŒ -ç¹å®ã®ãã£ãŒã«ãFieldãžã®ã¢ã¯ã»ã¹ïŒã€ã³ããã¯ã¹ïŒã·ãªã¢ã«çªå·ïŒãŸãã¯ååïŒãã£ãŒã«ãåã®æååå€ïŒïŒ |
éå | ããŒã¿ã»ããã®çŸåšã®è¡ã®åãžã®ã¢ã¯ã»ã¹ãæäŸãããã£ãŒã«ãã | å€ ïŒããããã£ïŒ-ãã£ãŒã«ãå€ïŒãªã³ã¯ãããã¬ã³ãŒãã»ããã®çŸåšã®è¡ã®å¯Ÿå¿ããåã®å€ã«ã¢ã¯ã»ã¹ã§ããŸãïŒ |
ãã©ã¡ãŒã¿ | ã¯ãšãªãã©ã¡ãŒã¿ãè¡šãå€ã®ã³ã¬ã¯ã·ã§ã³-ã¯ã©ã€ã¢ã³ãã¢ããªã±ãŒã·ã§ã³ããããŒã¿ããŒã¹ã«ããŒã¿ã転éããŸãã | ã«ãŠã³ã ïŒããããã£ïŒ-ã³ã¬ã¯ã·ã§ã³å
ã®ãã©ã¡ãŒã¿ãŒã®æ°ã瀺ããŸãã
è¿œå ïŒã¡ãœããïŒ-ã³ã¬ã¯ã·ã§ã³ã®æåŸã«ãã©ã¡ãŒã¿ãŒãè¿œå ããŸãã åé€ ïŒã¡ãœããïŒ-æå®ãããã©ã¡ãŒã¿ãŒãã³ã¬ã¯ã·ã§ã³ããåé€ããŸã |
ãã®ããã°ã©ã ã§äœ¿çšãããADOããŒã¿åã®å®å šãªèª¬æã以äžã«ç€ºããŸãã
åæåã®å®è£
// , COM- ADO // // : // . // // : // - ADO // ADO() ADO = ; // Connection, Record Stream ConnectModeEnum = ; ConnectModeEnum.("adModeRead", 1); // " " ConnectModeEnum.("adModeReadWrite", 3); // " " ConnectModeEnum.("adModeRecursive", 4194304); // ConnectModeEnum.("adModeShareDenyNone", 16); // " " ConnectModeEnum.("adModeShareDenyRead", 4); // " " ConnectModeEnum.("adModeShareDenyWrite", 8); // " " ConnectModeEnum.("adModeShareExclusive", 12); // " - " ConnectModeEnum.("adModeUnknown", 0); // ConnectModeEnum.("adModeWrite", 2 ); // " " ADO.("ConnectModeEnum", ConnectModeEnum); // Command (, ) CommandTypeEnum = ; CommandTypeEnum.("adCmdUnspecified", -1); // CommandTypeEnum.("adCmdText", 1); // CommandText // SQL-, // CommandTypeEnum.("adCmdTable", 2); // CommandText // , // SQL- CommandTypeEnum.("adCmdStoredProc", 4); // CommandText // , // CommandTypeEnum.("adCmdUnknown", 8); // // (adCmdText, adCmdTable, adCmdStoredProc) // CommandText CommandTypeEnum.("adCmdFile", 256); // CommandText // , // Recordset CommandTypeEnum.("adCmdTableDirect", 512);// CommandText // , // , SQL- ADO.("CommandTypeEnum", CommandTypeEnum); // , : Field, Parameter Property DataTypeEnum = ; DataTypeEnum.("AdArray", 8192); // , , ( "" ) DataTypeEnum.("adBigInt", 20); // 64- DataTypeEnum.("adBinary", 128); // DataTypeEnum.("adBoolean", 11); // DataTypeEnum.("adBSTR", 8); // , Null ( Unicode) DataTypeEnum.("adChapter", 136); // DataTypeEnum.("adChar", 129); // DataTypeEnum.("adCurrency", 6); // . 8- , 10000 DataTypeEnum.("adDate", 7); // . , - , 12/30/1899 DataTypeEnum.("adDBDate", 133); // DataTypeEnum.("adDBTime", 134); // DataTypeEnum.("adDBTimeStamp", 135); // DataTypeEnum.("adDecimal", 14); // DataTypeEnum.("adDouble", 5); // DataTypeEnum.("adEmpty", 0); // ( ) DataTypeEnum.("adError", 10); // 32- DataTypeEnum.("adFileTime", 64); // 64- , - 100, 01/01/1601 DataTypeEnum.("adGUID", 72); // GUID DataTypeEnum.("adIDispatch", 9); // COM- IDispatch. - . DataTypeEnum.("adInteger", 3); // 32- DataTypeEnum.("adIUnknown", 13); // COM- IUnknown. - . DataTypeEnum.("adLongVarBinary", 205); // ( Parameter) DataTypeEnum.("adLongVarChar", 201); // ( Parameter) DataTypeEnum.("adLongVarWChar", 203); // , Null - Unicode ( Parameter) DataTypeEnum.("adNumeric", 131); // DataTypeEnum.("adPropVariant", 138); // DataTypeEnum.("adSingle", 4); // DataTypeEnum.("adSmallInt", 2); // 16- DataTypeEnum.("adTinyInt", 16); // 8- DataTypeEnum.("adUnsignedBigInt", 21); // 64- DataTypeEnum.("adUnsignedInt", 19); // 32- DataTypeEnum.("adUnsignedSmallInt", 18); // 16- DataTypeEnum.("adUnsignedTinyInt", 17); // 8- DataTypeEnum.("adUserDefined", 132); // DataTypeEnum.("adVarBinary", 204); // ( Parameter) DataTypeEnum.("adVarChar", 200); // ( Parameter) DataTypeEnum.("adVariant", 12); // . - . DataTypeEnum.("adVarNumeric", 139); // ( Parameter) DataTypeEnum.("adVarWChar", 202); // Unicode, Null ( Parameter) DataTypeEnum.("adWChar", 130); // Unicode, Null ADO.("DataTypeEnum", DataTypeEnum); // ParameterDirectionEnum = ; ParameterDirectionEnum.("adParamInput", 1); // ParameterDirectionEnum.("adParamInputOutput", 3);// ParameterDirectionEnum.("adParamOutput", 2); // ParameterDirectionEnum.("adParamReturnValue", 4);// - ParameterDirectionEnum.("adParamUnknown", 0); // ADO.("ParameterDirectionEnum", ParameterDirectionEnum); // ( ) // , ObjectStateEnum = ; ObjectStateEnum.("adStateClosed", 0); // , ObjectStateEnum.("adStateOpen", 1); // , ObjectStateEnum.("adStateConnecting", 2); // , ObjectStateEnum.("adStateExecuting", 4); // , ObjectStateEnum.("adStateFetching", 8); // , ADO.("ObjectStateEnum", ObjectStateEnum); // Stream StreamTypeEnum = ; StreamTypeEnum.("adTypeBinary", 1); // StreamTypeEnum.("adTypeText", 2); // , // , Stream.Charset ADO.("StreamTypeEnum", StreamTypeEnum); // Stream SaveOptionsEnum = ; SaveOptionsEnum.("adSaveCreateNotExist", 1); // , SaveOptionsEnum.("adSaveCreateOverWrite",2); // , // ( , ) ADO.("SaveOptionsEnum", SaveOptionsEnum); ADO
ããŒã¿ããŒã¹ãæäœããŸãã 1Cã®ãµãããã°ã©ã ã
è€æ°ã®ããŒã¿ããŒã¹ãæã€ãŠãŒã¶ãŒã®äŸ¿å®ã®ããã«ãã æ¥ç¶ãããã¡ã€ã« ããæäŸãããŸãã ããŒã¿ããŒã¹ã«é¢é£ãããã©ã¡ãŒã¿ã®ã°ã«ãŒãã1ã€ã®ååã®äžã«çµ±åãããŠããŸãã ã»ãšãã©ã®å Žåããããã¯DBMSã«æ¥ç¶ããããã®ãã©ã¡ãŒã¿ãŒïŒããŒã¿ããŒã¹ãµãŒããŒã¢ãã¬ã¹ãããŒã¿ããŒã¹åãDBMSã¬ãã«ã§ããŒã¿ããŒã¹ã«æ¥ç¶ããããã®ãŠãŒã¶ãŒåãšãã¹ã¯ãŒãïŒã§ãããä»ã®ãã©ã¡ãŒã¿ãŒãè¿œå ããããšãã§ããŸã
ãããã¡ã€ã«ãæäœããã«ã¯ãã¡ã€ã³åŠçã¢ãžã¥ãŒã«ã®ã KBaseã®æ¥ç¶ãããã¡ã€ã« ãããã³ã KBaseã®æ¥ç¶ãããã¡ã€ã« ããããã³ãããã¡ã€ã«ãç·šéããããã®ãã€ã¢ãã°ãå®è£ ããã æ¥ç¶ãããã¡ã€ã«ã®ãã©ãŒã èšå® ã ãã©ãŒã ã®ã¯ã©ã¹ããããŸãã ããã¯ãã¹ãŠãã¢ã§èŠãããšãã§ããŸãã ãã®æ©èœã®ç¯å²ã¯ãDBMSäžã®å€éšããŒã¿ããŒã¹ã«ã¢ã¯ã»ã¹ããããã®ããã°ã©ã ã§ãã
ããŒã¿ããŒã¹ãæäœããããã®ã¡ã€ã³ã¯ã©ã¹ã¯ãConnectKBaseã¯ã©ã¹ã§ãã ããŒã¿ããŒã¹ãžã®æ¥ç¶ãšåæãããã³ã¯ãšãªã®å®è¡ãå¯èœã§ãã
ãŸãã䟿å©ãªè£å©ããŒã«ã¯ã¯ã©ã¹ã ãªã¯ãšã¹ããã©ã¡ãŒã¿ã®ã»ãã ãã§ãã ãã®ã»ããã«ãããSQLã¯ãšãªã®ããã¹ãã«ããŸããŸãªå€ãç°¡åã«åã蟌ãããšãã§ããŸãã ã¯ãšãªãã³ãã¬ãŒããæºåããååä»ãã®å€ïŒãã©ã¡ãŒã¿ãŒïŒãã»ããã«è¿œå ããŠãããç¹å®ã®ã¯ãšãªå€ãæ¿å ¥ããå Žæã«é¢ããæ瀺ãå«ãã¯ãšãªããã¹ããã³ãã¬ãŒããåŠçããŸãã ã»ããã¯ãªã¯ãšã¹ããã³ãã¬ãŒããåŠçããç¹å®ã®å€ãããã«ä»£å ¥ããŠããªã¯ãšã¹ãã®æçµããã¹ããåãåããŸãã ã¯ãšãªãã³ãã¬ãŒãã§ã¯ããã©ã¡ãŒã¿å€ã®çœ®æã®å Žæã¯æ¬¡ã®ããã«ç€ºãããŸããparameter_name ïŒã³ãã³ã次ã«ãã©ã¡ãŒã¿å-ããã¯Delphiã§è¡ãããŸãïŒã
次ã«äŸã瀺ããŸãã
= _(); ... // // QSelectGroupTmpl = "SELECT grid, pgid, grname FROM groups WHERE grid = :grid;"; // _(.); // grid 10 _(, "grid", 10); // â // grid 20. - 1 _(, "grid", 20); // â â // â // : "SELECT grid, pgid, grname FROM groups WHERE grid = 20;" = _(, QSelectGroupTmpl);
ãã®ã¡ã«ããºã ïŒã¯ãšãªãã³ãã¬ãŒãïŒã®äœ¿çšã®è©³çŽ°ã«ã€ããŠã¯ã PodBase_SelectGroupé¢æ°ããå§ãŸãPodBaseã¯ã©ã¹ã®ãµãã«ãŒãã³ã®ãã¢ãåç §ããŠãã ããã
ãã©ã¡ãŒã¿ã®ã»ããã¯å€ã®ã¿ã€ããåæãïŒãæªå®çŸ©ãããæ°å€ãããæååãããæ¥ä»ãããããŒã«ããç解ããŸãïŒãæå®ãããDBMSã«æ£ããæ§æã§ã¯ãšãªã®å€ã眮ãæããŸãã
ã RequestParameter Set ãã¯ã©ã¹ã®ãœãŒã¹ã³ãŒãïŒ
ãœãŒã¹ããã¹ã
//////////////////////////////////////////////////////////////////////////////// // () // . // // : // . // : // // _() = ; .("", ); // ; // . // // : // . // : // () - // _() = _(); ; // - . // // : // - // _() _() // . , // // : // - // - ( ) // - // _(, , ) ( <> ) (() = ("")) (() <> "") = (); // . (.) = () // - . = ; ; // = ; .("", ); .("", ); ..() // // // : // - // : // // _() ..() // - // // : // - // _() ..() // // (? - , * - - ) // SQL- Like ( _ %) // // : // - : ? * // : // : _ % // _Like( ) = ""; ( <> ) (() = ("")) ( <> "") = ; = (, "_", ""); = (, "%", ""); = (, "?", "_"); = (, "*", "%"); ; // , // SQL- FireBird // - // - 0 1 // - dd.mm.yyyy hh:mm:ss, // - // - Null NULL // // : // - // : // , // _( ) = ""; ( = ) ( = Null) = "NULL" () = ("") // = (, "=0; ='.'; =''") () = ("") // - = "'" + (, "='dd.MM.yyyy HH:mm:ss'") + "'" () = ("") // = (, "=0; =1") () = ("") // = (, "'", "''"); // = "'" + + "'" ; // , . // // : // - // - , ":_" // : // , // _(, ) = ""; ( <> ) (() = ("")) ( <> "") = ; . = (, ":" + ., _(.)) ;
ããã§ã¯ãæåŸã«ãããŒã¿ããŒã¹ãæäœããäž»ãªã¯ã©ã¹ã§ãããKBaseã«æ¥ç¶ãã¯ã©ã¹ã«ã€ããŠèããŠã¿ãŸãããã
ãã®ã¯ã©ã¹ã«ã¯ã次ã®ã«ãŒãã³ãå«ãŸããŠããŸãã
ãµãã«ãŒãã³å | 説æ | ã泚æ |
---|---|---|
æ±çšã«ãŒãã³ã®ã°ã«ãŒãã ãªããžã§ã¯ãã®ã³ã³ã¹ãã©ã¯ã¿ãããŒã¿ããŒã¹ã«æ¥ç¶ããŠããŒã¿ããŒã¹ããåæããããã®ã«ãŒãã³ãããã³ãªããžã§ã¯ãã®äžè¬çãªããããã£ã®çŸåšã®å€ãè¿ãã«ãŒãã³ã次ã«ç€ºããŸãã | ||
é¢æ°SubBase_CreateObjectïŒïŒ | ãªããžã§ã¯ãæ§é ã®äœæ | |
é¢æ°SubBase_ConstructorïŒïŒ | ãªããžã§ã¯ãã³ã³ã¹ãã©ã¯ã¿ãŒ | |
SubBase_Destructorããã·ãŒãžã£ïŒSubBaseïŒ | ãªããžã§ã¯ããã¹ãã©ã¯ã¿ | |
é¢æ°SubBase_GetDBAddrïŒSubBaseïŒ | ããŒã¿ããŒã¹ã®ã¢ãã¬ã¹ãè¿ããŸã | |
é¢æ°SubBase_GetDBUserNameïŒSubBaseïŒ | æ¥ç¶ããããŒã¿ããŒã¹ãµãŒããŒã®ãŠãŒã¶ãŒåãè¿ããŸã | |
GetConnect_Baseé¢æ° | ããŒã¿ããŒã¹ãžã®æ¥ç¶ã確ç«ããå åãè¿ããŸã | |
é¢æ°SubBaseConnectToDBïŒSubBaseãFBDBAddrãFBUserNameãFBUserPassïŒ | ããŒã¿ããŒã¹ãµãŒããŒã«æ¥ç¶ããŸã | |
SubBaseã®åææé | ããŒã¹ããåæããŸã | |
é¢æ°SubBase_GetUserRegisterïŒSubBaseïŒ | ãŠãŒã¶ãŒç»é²ã®ãµã€ã³ãè¿ããŸã | |
_RegisterUser (, UserName, UserPass) | ||
_UnregisterUser() | ||
_GetRegLogin() | , | |
_GetUserID() | ||
_GetUserName() | ||
_GetUserRights() | ||
_TestUserRight(, RightIndex) | , | |
_GetErrorMsg() | . | |
, ADO â - . ( ). | ||
_ClearCommandParameters() | ADODB.Command | |
_ExecSQL(, ) | SQL-,
| |
_GetRecordSet(, ) | SQL-,
| |
_CheckRestConnect(, =) | . | |
, . . | ||
_CheckRights(, RightsMask="") | . | |
_SelectDataSet(, , DstDataSet, RightsMask="") | ||
_SelectSingleVal(, , OutVal, OutValName, RightsMask="") | ||
_SelectPair(, , OutVal1, OutVal2, OutValName1, OutValName2, RightsMask="") | ||
_SelectList(, , List, RightsMask="") | ||
_SelectListPair(, , List, RightsMask="") | ||
_SelectObject(, , Obj, RightsMask="") | ||
_SelectObjects(, , ClassID, ObjectsSet, RightsMask="") | ||
_WriteQuery(, , RightsMask="") | ||
, . | ||
_SelectGroup(, GRID, ObjGroup) | ||
_SelectGroups(, PGRID, ObjSetGroups) | , | |
_SelectCard(, CDID, ObjCard) | ||
_SelectCardsNames(, GRID, ObjSetCards) | , | (BLOB- ) |
_SelectUser(, UID, ObjUser) | ||
_SelectUsers(, ObjSetUsers) | â | |
_SaveGroup(, ObjGroup) | â INSERT UPDATE | |
_DeleteGroup(, GRID) | ( ) | |
_SaveCard(, ObjCard) | â INSERT UPDATE . | |
_DeleteCard(, CDID) | ||
_MoveGroupToGroup(, SrcGRID, DstGRID) | . . | |
_MoveGroupContentsToGroup(, SrcGRID, DstGRID) | . . | |
_MoveCardToGroup(, SrcCDID, DstGRID) | . | |
_UpdatePassword(, OldPassword, NewPassword) | ( ) . | |
_SaveUsers(, ObjSetUsers, DelUsersIDs) | â INSERT UPDATE
. â DELETE. |
, ADO:
â ( , ) â «_ConnectToDB», «_RegisterUser» .
( , ):
â « ADODB.Connection »;
â « ADODB.Command » . â SQL- (CommandType = CommandTypeEnum.adCmdText). (, ..) ;
â , ( ).
. , .
:
// // // : // - // FBDBAddr - ( ) // FBUserName - // FBUserPass - // : // , - // _ConnectToDB(, FBDBAddr, FBUserName, FBUserPass) // QGetTab = "SELECT RDB$RELATION_NAME AS tabname FROM RDB$RELATIONS " + "WHERE ((RDB$SYSTEM_FLAG = 0)AND(RDB$VIEW_SOURCE IS NULL)) " + "ORDER BY RDB$RELATION_NAME;"; = ; .FBDBAddr = FBDBAddr; // .FBUserName = FBUserName; // .FBUserPass = FBUserPass; // .FBSrvConn = ; // .FBCommand = ; // .IsDBConnect = ; // .LastTestTime = 0; // _UnregisterUser(); // .ErrMsg = ""; // // FireBird _Driver = "driver={" + "Firebird/InterBase(r) driver" + "}"; _UID = "uid=" + FBUserName; _PWD = "pwd=" + FBUserPass; _DataBase = "database=" + FBDBAddr; = _Driver + ";" + _UID + ";" + _PWD + ";" + _DataBase; // .FBSrvConn = COM("ADODB.Connection"); // .FBSrvConn.open(); .IsDBConnect = ; // .FBCommand = COMObject("ADODB.Command"); .FBCommand.ActiveConnection = .FBSrvConn; .FBCommand.NamedParameters = True; .FBCommand.CommandType = ADO.CommandTypeEnum.adCmdText; // // , = QGetTab; .FBCommand.CommandText = ; = .FBCommand.Execute(); = ; <> .State = ADO.ObjectStateEnum.adStateOpen = ; // .EOF = 0 .((.Fields("TABNAME").Value)); // .MoveNext(); ; // TabName .QTabsLst .(TabName) = // .ErrMsg = " " + TabName + " "; ; // .ErrMsg = " " // .ErrMsg = " "; ; // .Close(); = // .ErrMsg = " " ; // .ErrMsg = " FireBird: " + () ; .ErrMsg = "" // - = // - _Disconnect() ; ; // - // UserName UserPass // . // // : // - // UserName - // UserPass - // : // , // ( ) - // _RegisterUser(, UserName, UserPass) // QGetUsr = "SELECT * FROM USERS WHERE " + "((UPPER(UNAME COLLATE PXW_CYRL) = :upname)OR(UNAME = :name)) AND (UPWD = :pass);"; = ; .ErrMsg = ""; // .IsDBConnect // - _UnregisterUser(); // // // _(.); _(., "upname", (UserName)); _(., "name", UserName); _(., "pass", UserPass); = _(., QGetUsr); .FBCommand.CommandText = ; = .FBCommand.Execute(); = ; <> (.State = ADO.ObjectStateEnum.adStateOpen) (.EOF = 0) .UID = .Fields("UID").Value; .UName = .Fields("UNAME").Value; .Rights = .Fields("URIGHTS").Value; ; .IsRegister = ; // .Close(); = ; .IsRegister // .RegLogin = UserName; .RegPass = UserPass; = // .UID = 0; .UName = ""; .Rights = ""; .ErrMsg = "" .ErrMsg = " " // .ErrMsg = " " ;
â ( , ) â «_Disconnect», «_UnregisterUser» .
« »
« ADODB.Command », « ADODB.Connection » ( TCP) ;
:
// // // : // - // _Disconnect() // _UnregisterUser(); // .IsDBConnect = ; .LastTestTime = 0; .FBCommand = ; .FBSrvConn <> .FBSrvConn.State = ADO.ObjectStateEnum.adStateOpen .FBSrvConn.Close() ; .FBSrvConn = ; // // // : // - // _UnregisterUser() .IsRegister = ; .RegLogin = ""; .RegPass = ""; .UID = 0; .UName = ""; .Rights = "";
â â «_ExecSQL», «_GetRecordSet», «_CheckRestConnect» .
« ADODB.Command », â « Execute ». « ADODB.Recordset » .
. : (15-20 .), ( TCP-) . , â ( ), , . . , .
. «», â . , () , . , ( localhost, .. , , ).
- ( NOP-) TCP-, (, , ). , FireBird .. DUMMY- ( , ), - . , «» , , Windows «». Microsoft, ( DUMMY-???), , Windows-2000, KB-. , DUMMY- FireBird ( ).
, FireBird , ( ) TCP- ( ASK- TCP), SO_KEEPALIVE. , -, «KEEP ALIVE» ( Windows ) 2- ( 15-20., ). -, , , , .. ASK- . , .
, . , , , ( ) ( ) . , ( ) « _CheckRestConnect ». « » , ( ) « », ( ). « CheckRestConnect » , , «ADODB.Command»? â , InterBase/FireBird, «SELECT 1 FROM RDB$DATABASE». , . « CheckRestConnect » . « CheckRestConnect » , , 2 ( + 1 ) . « CheckRestConnect », â 5. , , . , « _ExecSQL » « _GetRecordSet », « CheckRestConnect » 2- ( 1- , 2- ). , ( 5.) - , « CheckRestConnect » , . , « CheckRestConnect » .
:
ãœãŒã¹ããã¹ã
// SQL- // ( , ). // , - // // : // - // - // : // , - // _ExecSQL(, ) .ErrMsg = ""; // = ; _CheckRestConnect() .FBCommand.CommandText = ; .FBCommand.Execute(); // = ; // .ErrMsg = " : " + (); // , - _CheckRestConnect(, ) .FBCommand.CommandText = ; .FBCommand.Execute(); // = ; // .ErrMsg = " : " + (); ; // SQL- // ( , // ). // // : // - // - // : // , // _GetRecordSet(, ) .ErrMsg = ""; // = ; _CheckRestConnect() .FBCommand.CommandText = ; = .FBCommand.Execute(); // .ErrMsg = " : " + (); // , - _CheckRestConnect(, ) .FBCommand.CommandText = ; = .FBCommand.Execute(); // .ErrMsg = " : " + (); ; // FireBird // ( ). , . // , - // // : // - // - (), , // // (5 .) // : // , - // _CheckRestConnect(, =) // QTestConnect = "SELECT 1 FROM RDB$DATABASE;"; .ErrMsg = ""; // = ; (.FBSrvConn <> ) .IsDBConnect // = 300000; // ( ), = (); (.LastTestTime = ) (.LastTestTime = 0) ( - .LastTestTime >= ) // .FBCommand.CommandText = QTestConnect; .FBCommand.Execute(); // .LastTestTime = ; = // - // FBDBAddr = .FBDBAddr; // FBUserName = .FBUserName; // FBUserPass = .FBUserPass; // IsRegister = .IsRegister; // UserName = .RegLogin; // UserPass = .RegPass; // _Disconnect(); // _ConnectToDB(, FBDBAddr, FBUserName, FBUserPass) // - IsRegister _RegisterUser(, UserName, UserPass) // - .LastTestTime = ; = // - _Disconnect(); // - .LastTestTime = ; = // = // .ErrMsg = " "; ;
BLOBãã©ã¡ãŒã¿ãŒãæäœããããã®ãã«ããŒã«ãŒãã³ã
InterBase / FireBirdã«ã¯ãTEXTãšBINARYã®2çš®é¡ã®BLOBãã£ãŒã«ãããããŸãã
TEXTã¯ãä»ã®DBMSã®MEMOãšæ¬è³ªçã«åãã§ããããã¯äžå®æ¬¡å ã®ããã¹ãã§ãããã¡ã€ã³ããŒãã«ãšã¯å¥ã«ä¿åãããŸããããã¹ãæååãšåæ§ã«ãADOãšCHAR / VARCHARã䜿çšããŠäœæ¥ã§ããŸãïŒãã¹ãŠã®ãã©ã³ã¹ã³ãŒãã¯èªåçã«å®è¡ãããŸãïŒãSQLã¬ãã«ã§ã¯ãä»ã®ããã¹ãæååãšæ¯èŒã§ããŸãïŒæ¯èŒæŒç®åãšLIKEïŒãããŒã¿ããŒã¹ã«ã¯ããã®ãããªãã£ãŒã«ãã1ã€ãããŸã-ãCARDS.CDCONTACTSãã§ãã
ãã€ã㪠â BLOB, . , . 1 («ADO.Recordset», «ADO.Parameters») COMSafeArray ( ).
, . â «CARDS.CDNOTE». , â . WIN-1251, 1 «» â UTF-8. :
WIN1251_UTF8 UTF8_WIN1251 COMSafeArrayWIN1251_UTF8 UTF8_COMSafeArrayWIN1251
// ( Windows-1251) // 1C ( UTF-8) // // : // WIN1251 - Windows-1251 // : // "", // WIN1251_UTF8(WIN1251) = ""; (WIN1251) = ("") WIN1251 () = ("") // Windows-1251 UTF-8 ( >= 192) ( <= 223) // - = + 848 ( >= 224) ( <= 239) // - = + 848 ( >= 240) ( <= 255) // - = + 848 ( = 184) // = 1105 ( = 168) // = 1025 ( = 185) // â = 8470 ; // = + () ; // 1 ( UTF-8) // ( Windows-1251) // // : // UTF8 - UTF-8 // : // Windows-1251 // UTF8_WIN1251(UTF8) = ; (UTF8) = ("") =1 (UTF8) = ((UTF8, , 1)); // UTF-8 Windows-1251 < 192 = ( >= 192+848) ( <= 223+848) // - = - 848 ( >= 224+848) ( <= 239+848) // - = - 848 ( >= 240+848) ( <= 255+848) // - = - 848 ( = 1105) // = 184 ( = 1025) // = 168 ( = 8470) // â = 185 // = -1 ; // >= 0 .() ; // COMSafeArray ( Windows-1251) // 1C ( UTF-8) // // : // COMSafeArray - COMSafeArray // ( 1) // - // Windows-1251 // : // "", // COMSafeArrayWIN1251_UTF8(COMSafeArray) = ""; (COMSafeArray) = ("COMSafeArray") (COMSafeArray.GetDimensions() = 1) (COMSafeArray.GetLength(0) > 0) = COMSafeArray.(); = WIN1251_UTF8() ; // 1C ( UTF-8) // ( Windows-1251) COMSafeArray // // : // UTF8 - UTF-8 // : // COMSafeArray Windows-1251 // , // UTF8_COMSafeArrayWIN1251(UTF8) = ; (UTF8) = ("") = UTF8_WIN1251(UTF8); = COMSafeArray(, "VT_UI1", .()) ;
BLOB(BINARY) () â «CARDS.CDIMAGE». , « » « COMSafeArray ». « COMSafeArray » « ». « » , «», « BASE64 » « Base64 » « Base64 ». ( ) : « COMSafeArray »« »« »« ». « Base64 » « Base64 ».
, :
Base64 Base64 COMSafeArray_ _COMSafeArray
// BASE64. // // : // - ( 0..255), // ; // - BASE64, // ( ). // - 72 . 0, // ( ); // Base64 - - BASE64; // - , // ( 0), // ( -1, // ) // - , // . // : // , , ( // ) // Base64(, =72, Base64, , ) Base64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; = ; = -1; = ""; () = ("") (() = ("")) ( >= 0) = .(); Base64 = ""; = 0; // Base64 // , . = 0; // (0..2) = 0;// , 3- =0 // = []; ( >= 0) ( <= 255) // = 256* + ; = + 1; ( > 2) ( = ) // // ( ) - // BASE64 // , // = 2 = 256* ; // BASE64 = ""; // BASE64 // ( ), // "=" =+1 3 = % 64; = "=" + ; = ( - ) / 64 ; // BASE64 =0 = % 64; = (Base64, +1, 1) + ; = ( - ) / 64 ; // = 0 // Base64 = Base64 + // // >= Base64 = Base64 + (13) + (10); = 0 ; // = (); // 4 + <= Base64 = Base64 + ; = + ; =1 >= Base64 = Base64 + (13) + (10); = 0 ; Base64 = Base64 + (, , 1); = + 1 ; = 0; = 0 // : 0.255 = ; = " (0..255)"; // : = " " // : = " " ; // , = "" = ; // BASE64 . // // : // Base64 - BASE64, ; // - ( 0..255), // ( Base64) // - , // Base64 ( 1), // ( 0, // ) // - , // . // : // , , ( // ) // Base64(Base64, , , ) Base64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; = ; = 0; = ""; (Base64) = ("") Base64 = (Base64); = ; = 0; // , 3- 4- = 0; // (1..4) // ( "=") = 0; // - ( "=") =1 Base64 = (Base64, , 1); ( = " ") ( = .) ( = .) ( = .) // - = "=" // - 2- (=Base64-1) (=Base64) // "=" // = 64* + 0; = + 1; // : = ; = " "; // , BASE64 Base64 = (Base64, )-1; (Base64 >= 0) (Base64 <= 63) // // = 64* + Base64; = + 1; = + 1 // : = ; = " "; ; // - >= 4 // , , // = % 256; 2 = ; = ( - ) / 256; = % 256; 1 = ; = ( - ) / 256; = % 256; 0 = ; >= 2 .(0); >= 3 .(1); >= 4 .(2) ; // = 0; = 0; = 0; ; // , > 0 = "" // : = " " // : = " " ; // , = "" = ; // COMSafeArray (BLOB- // ) // // : // COMSafeArray - COMSafeArray // ( 1) // - // // : // , // COMSafeArray_(COMSafeArray) = ; (COMSafeArray) = ("COMSafeArray") (COMSafeArray.GetDimensions() = 1) (COMSafeArray.GetLength(0) > 0) = COMSafeArray.(); Base64 = ""; = 0; = ""; Base64(, 0, Base64, , ) = Base64(Base64); = (); = ; // // COMSafeArray // // : // - // : // COMSafeArray // , // _COMSafeArray() = ; (() = ("")) (. <> .) = .(); Base64 = Base64(); = ; = 0; = ""; Base64(Base64, , , ) = COMSafeArray(, "VT_UI1", .()) ;
, « Base64 » « Base64 » , . â ( + « » (.. , .. « » ), « »). , « » « COMSafeArray »« » « ãããã¡ã€ã«ã«ä¿åããŠãã¡ã€ã«ããããŠã³ããŒãããããã«ãã€ã³ã¿ãŒãããããã®æšå¥šã«åŸã£ãŠADO.Stream COMãªããžã§ã¯ãã䜿çšããŸããããã®çµæãå€æã¯ã»ãŒç¬æã«å®è¡ãããŸããã³ãŒãã¯æ¬¡ã®ãšããã§ãã
COMSafeArray_ _COMSafeArray
ãœãŒã¹ããã¹ã
// COMSafeArray (BLOB- // ) // // : // COMSafeArray - COMSafeArray // ( 1) // - // // : // , // COMSafeArray_(COMSafeArray) = ; (COMSafeArray) = ("COMSafeArray") (COMSafeArray.GetDimensions() = 1) (COMSafeArray.GetLength(0) > 0) = (); // BLOB StreamOut = COM("ADODB.Stream"); StreamOut.Type = ADO.StreamTypeEnum.adTypeBinary; // StreamOut.Mode = ADO.ConnectModeEnum.adModeReadWrite; // - StreamOut.Open(); StreamOut.Write(COMSafeArray); StreamOut.SaveToFile(, ADO.SaveOptionsEnum.adSaveCreateOverWrite); StreamOut.Close(); // = (); = ; // () ; // // COMSafeArray // // : // - // : // COMSafeArray // , // _COMSafeArray() = ; (() = ("")) (. <> .) = (); // .(); // BLOB StreamIn = COM("ADODB.Stream"); StreamIn.Type = ADO.StreamTypeEnum.adTypeBinary; // StreamIn.Mode = ADO.ConnectModeEnum.adModeReadWrite; // - StreamIn.Open(); StreamIn.LoadFromFile(); = StreamIn.Read(); StreamIn.Close(); // () ;
ããã°ã©ã ã€ã³ã¿ãŒãã§ã€ã¹ã«é¢ãã泚æã
ããŒã¿ã¢ãã«ã®ç¶æ ãšãã®è¡šç€ºã€ã³ã¿ãŒãã§ã€ã¹ã®äžè²«æ§ã確ä¿ããããšãéèŠã§ãã ã€ãŸã - , , . , , . 1 , . ( ), . , , «» . , ( ), . , ( ).
, , « » « » , .. . â , « », .
:
/////////////////////////////////////////////////////////////////////////////////////////////////// // // // /////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// // () // ( ). // . // // : // - , ; // _() <> // , = (10, 0); = (); = ; .(); .(("")); = (); // "" .(); .(("")); = (, , ,); // "" .(); .(("")); = (); // "" .(); .(("")); = (, , ); // "" // ..(); ..("", ); ..("", ); ..("", ); ..("", ) // . // // : // - , // - , ; // : // , , // // _(, ) = ; <> (. <> ) (..GRID = ) = . (. <> ) (..GRID = ) = ; = _(, ); <> ; // . // // : // - , ; // - , ; // - , // , ( , // ); // : // , , // // _(, , =) = ; <> // = _(, ) ; = // . (. <> ) (..GRID = ) = = _(, ) ; <> ; // , . // // : // - , ; // - ObjGroup; // - , // , ( , // ); // : // , , // // _(, , =) = ; <> _(, .GRID, ) ; // , // ( , // ) . . // // : // - , ; // - ; // - ; // : // , , // // _(, , ) = ; ( > 0) ( >= 0) ( <> ) = 0 // = // = _(, ); <> // , // = .; <> ..GRID = // , = ; ; = . ; // . // , . // , . ( // ), . // // : // - , ; // - ObjGroup, ; // - , // , ( , // ); // : // , // , // _(, , =) = ; // , ( <> ) ( <> ) = _(, .GRID, ); = // - = _(, .PGRID, ); <> = ..(); . = ; . = 0; . = ; . = .GRName; = // = .; (( = ) (.PGRID < 0)) (( <> ) (..GRID = .PGRID)) // . = ; . = .GRName; = // <> ..() ; = _(, .PGRID); <> = ..(); . = ; . = 0; . = ; . = .GRName; = ; // , // ( ). // // : // - , ; // - ObjGroup, ; // - , // , ( , // ); // : // , // , // _(, , =) = ; ( <> ) ( <> ) = _(, .GRID, ); <> = .; <> = ..(); ..(); = ..(); > 0 < = .[] = .[-1] = ; // . // // : // - ; // - ; // - , ; // - , ; // - , // - // ( , // ); // - - , , // ( =0, - // ). // _(, , , , =, =0) ( <> ) ( >= 0) ( >= 0) // , = ; ( <> ) (..GRID = ) = ; = = _(, , ) ; <> // . = ; ..(); // = ObjSet_(.ClassIDs.CLN_GROUP); _SelectGroups(, , ) // // , // =0 ObjSet_GetCount()-1 = ObjSet_GetItemByIndex(, ); = ..(); . = ; . = 0; . = ; . = .GRName; ; . = ; // <> 1 . // = 0 _(, , , ..GRID, , ) > 1 _(, , , ..GRID, , -1) // _(, ._1, " ", ._, _GetErrorMsg()) ; ObjSet_() // , . // . // // : // - ; // - ; // - , ; // - - , , // ( =0, - // ). // : // , // // _(, , , =0) = ; ( <> ) ( >= 0) // ..(); // = ObjGroup_(); ObjGroup_SetAttr(, 0, -1, ""); = ..(); . = ; . = 0; . = ; . = .GRName; // , ( 2- ) _(, , , .GRID, , ); = ; //////////////////////////////////////////////////////////////////////////////// // () // - // ( ). . // // : // - , ; // _() <> // , = (10, 0); = (); = ; .(); .(("")); = (); // "" .(); .(("")); = (, , ,); // "" .(); .(("")); = (); // "" .(); .(("")); = (, , ); // "" // ..(); ..("", ); ..("", ); ..("", ); ..("", ) // . // // : // - ObjGroup ObjCard, ; // - , ; // : // , - // // _(, ) = ; ( <> ) ( >= 0) = ((.ClassID = .ClassIDs.CLN_GROUP) (.PGRID = )) ((.ClassID = .ClassIDs.CLN_CARD) (.GRID = )) ; // , . // // : // - ObjGroup ObjCard, ; // - , ; // : // , - // // _(, ) = ; ( <> ) ( <> ) = ((.ClassID = .ClassIDs.CLN_GROUP) (. = ) (.GRID = ..GRID)) ((.ClassID = .ClassIDs.CLN_CARD) (. = ) (.CDID = ..CDID)) ; // , . // // : // - , ; // - ObjGroup ObjCard, ; // - , // ( , // ); // : // , , // // _(, , ) = ; ( <> ) ( <> ) ( <> ) _(, ) // , - = // _(, ) = ; ; // ( ) // . // // : // - ; // - ; // - , ; // - , ; // _(, , , ) <> // .(); >= 0 // = ObjSet_(.ClassIDs.CLN_GROUP); _SelectGroups(, , ) // =0 ObjSet_GetCount()-1 = ObjSet_GetItemByIndex(, ); = .(); . = ; . = 0; . = ; . = .GRName; // _(, ._1, " ", ._, _GetErrorMsg()) ; ObjSet_(); // = ObjSet_(.ClassIDs.CLN_CARD); _SelectCardsNames(, , ) // =0 ObjSet_GetCount()-1 = ObjSet_GetItemByIndex(, ); = .(); . = ; . = 1; . = ; . = .CDName; // _(, ._1, " ", ._, _GetErrorMsg()) ; ObjSet_() // . // , . // , . ( // ), . // // : // - , ; // - , ; // - ObjGroup, ; // - , // , ( , // ); // : // , ( ) // , // _(, , , =) = ; ( <> ) ( >= 0) ( <> ) = _(, , ); = // - _(, ) // - .ClassID = .ClassIDs.CLN_GROUP // 1- // = 0; < .() = []; . = + 1 ; // = .(); . = ; . = 0; . = ; . = .GRName; = .ClassID = .ClassIDs.CLN_CARD // = .(); . = ; . = 1; . = ; . = .CDName; = // _(, ) // - . = ; . . = .GRName . = .CDName // ( ) = _(, , ) ; // , . // // : // - , ; // - ObjGroup ObjCard, ; // - , // , ( , // ); // : // , // , // _(, , =) = ; ( <> ) ( <> ) = _(, , ); <> = .(); .(); = .(); > 0 < = [] = [-1] ;
(, ) .
. ( ), , 2 (1- , 2- , , 1- â ). , , , . «». , , «» , «» . , .
FireBird.
, FireBird :
1. , , :
â «ADO.Connection» «ADO.Command» ;
â SQL- ( )
// FireBird _Driver = "driver={" + "Firebird/InterBase(r) driver" + "}"; _UID = "uid=" + FBUserName; _PWD = "pwd=" + FBUserPass; _DataBase = "database=" + FBDBAddr; = _Driver + ";" + _UID + ";" + _PWD + ";" + _DataBase; // .FBSrvConn = COM("ADODB.Connection"); // .FBSrvConn.open(); .IsDBConnect = ; // .FBCommand = COMObject("ADODB.Command"); .FBCommand.ActiveConnection = .FBSrvConn; .FBCommand.CommandType = ADO.CommandTypeEnum.adCmdText;
â â , ,
// .IsDBConnect = ; .LastTestTime = 0; .FBCommand = ; .FBSrvConn <> .FBSrvConn.State = ADO.ObjectStateEnum.adStateOpen .FBSrvConn.Close() ; .FBSrvConn = ;
2. .
. SQL-, . , , . , ( â ), , ( ) . , â 5. «_CheckRestConnect», .
3. :
â , , «ADO.Recordset», ;
â â (, /, ) (, 65535 ), BLOB- «ADO.Parameter»;
â «SELECT» «EXECUTE PROCEDURE» ( SQL-);
4. :
â , (CHAR, VARCHAR, BLOB(TEXT)) â ;
â , (BLOB(BINARY)) â ( 1 UTF-8). â , . , .
5. ( BLOB):
â ( BLOB(BINARY)-) ( ) COMSafeArray (, BLOB(TEXT) ). «» «COMSafeArray» ( ), . «» . «COMSafeArray», COM- «ADO.Stream».
6. BLOB- :
â , , « Parameters » « ADO.Command ». , , « :prm_name » ( ). ADO FireBird ( âŠ). â , . â ADO FireBird . , « ? » ( ). , , « Parameters ». ( ) â « ».
以äžã§ãã çãããé 匵ã£ãŠãã ããã ãããã
PS
( 1 8.2 + ) .FireBird 1.5 2.1. : FireBird, « script.sql » ( ).