Migrating Borland® Database Engine Applications to dbExpress

Size: px
Start display at page:

Download "Migrating Borland® Database Engine Applications to dbExpress"

Transcription

1 BDE 애플리케이션을 dbexpress 로마이그레이션하기 provide/resolve 구조를사용하는새로운접근방식 Bill Todd (The Database Group, Inc. 사장 ) 볼랜드 Software Coporation 2002 년 9 월 목차 볼랜드 dbexpress- 새로운비전 1 dbexpress 구조 1 provide/resolve 구조의동작방식 2 dbexpress 애플리케이션개발 3 BDE 와 dbexpress 의비교 12 BDE SQL Links 애플리케이션을 dbexpress 로마이그레이션하기 로컬데이터베이스애플리케이션을 dbexpress 로마이그레이션하기 요약 17 저자소개 17 볼랜드 dbexpress- 새로운비전 여러데이터베이스를지원하기위한공통 API 를 생성하려는시도는몇가지의문제점을가지고있습니다. 어떤방식은너무많은것을지원하기때문에크고느리고 배포에어려움이있었습니다. 다른방식은최소한의공통 요소만을제공한때문에개발자들이일부데이터베이스의 특정기능을이용할수없었습니다. 또다른방식은 드라이버작성의복잡성때문에제한된기능을제공하거나 속도가느리거나버그를가지고있었습니다. 볼랜드 dbexpress 는여러데이터베이스의공통 API 제공을위한 새로운접근방식과, 데이터편집및수정작업을관리하는 볼랜드의입증된 provide/resolve 구조를이용하여이문제를 해결했습니다. 이글에서는 dbexpress 와 provide/resolve 방식의구조를살펴보고, dbexpress 컴포넌트를사용하여 데이터베이스애플리케이션을개발하는방법을보여주고, BDE(Borland Database Engine) 을사용하는데이터베이스 애플리케이션을 dbexpress 로변환하는과정을설명합니다. dbexpress 구조 dbexpress 는다음과같은 6 가지목표를충족시키도록 설계되었습니다. 크기와시스템리소스사용량의최소화 속도최대화 크로스플랫폼지원제공 더쉬운배포 쉬운드라이버개발 메모리사용과네트워크트래픽에대한개발자의 제어능력확대

2 dbexpress 드라이버는기능이극히제한되어있기때문에작고빠릅니다. 각드라이버는윈도우플랫폼상의단일 DLL인동시에리눅스플랫폼상의단일 Shared Object 라이브러리로서구현되어있습니다. dbexpress 드라이버는메타데이터페치, SQL 명령및프로시져의실행, 읽기전용단방향커서반환을위한 5개의인터페이스를구현하고있습니다. 그러나, 볼랜드의 provide/resolve데이터액세스전략에따라 DataSetProvider 및 ClientDataSet와함께사용하는경우 dbexpress는 SQL 데이터베이스에있는데이터로작업할수있는모든기능, 고성능, 높은병행성에있어서최적화된성능을발휘합니다. provide/resolve 구조의동작방식 provide/resolve구조는 4개의컴포넌트를사용하여데이터를액세스하고편집합니다. 첫번째는 SQLConnection 컴포넌트로서, 사용할데이터베이스에대한 dbexpress 드라이버에연결합니다. 다음은 dbexpress 데이터셋컴포넌트가운데하나로, SQL SELECT 문장을실행하거나스토어드프로시저를호출한결과데이터를전달합니다. 세번째컴포넌트는 DataSetProvider이고, 네번째는 ClientDataSet입니다. ClientDataSet를열면 DataSetProvider에데이터를요청하게됩니다. DataSetProvider는쿼리또는스토어드프로시저컴포넌트를열고레코드를읽어온후에쿼리혹은스토어드프로시저컴포넌트를닫고필요한메타데이터와함께레코드들을 ClientDataSet에전달합니다. ClientDataSet은레코드들을조회또는수정되는동안이들을메모리에보유하고있습니다. 레코드가코드또는유저인터페이스를통하여추가, 삭제또는수정되면 ClientDataSet이모든변경사항을메모리에기록합니다. 데이터베이스를갱신하려면 ClientDataSet의 ApplyUpdates 메소드를호출합니다. ApplyUpdates는변경기록을 DataSetProvider로전송합니다. 프로바이더는트랜잭션을시작하고데이터베이스에변경사항을적용하기위한 SQL 문을생성하여실행합니다. 모든변경사항이성공적으로적용되면프로바이더는트랜잭션을커밋합니다. 그렇지않은경우트랜잭션은롤백됩니다. 데이터베이스갱신은변경사항이비즈니스규칙을위반하는것이거나다른사용자가갱신하려는레코드를변경하였거나하는경우에는실행되지않습니다. 오류가발생하면트랜잭션은 취소되고 ClientDataSet의 OnReconcileError 이벤트가발생하여사용자가오류를처리하도록합니다. provide/resolve 구조의이점 짧은트랜잭션시간긴트랜잭션은데이터베이스서버가락을유지하도록하여동시성을감소시키고데이터베이스서버의리소스를소모합니다. provide/resolve구조에서는갱신의적용순간에만트랜잭션이존재하므로, 리소스소모를현저하게낮추고혼잡한데이터베이스서버의동시성을향상시킵니다. 모든행의편집가능다중테이블조인, 스토어드프로시저또는읽기전용뷰에서는행을직접편집할수없습니다. 필드객체의 ProviderFlags 속성을사용하여갱신할필드를식별하고 DataSetProvider의 OnGetTableName 이벤트를사용하여테이블의이름을제공하면많은읽기전용데이터셋을쉽게편집할수있습니다. 즉시적인정렬및탐색 ClientDataSet은레코드들을메모리에가지고있으므로정렬이빠릅니다. 메모리내의정렬이너무느리면디자인타임이나런타임에서 ClientDataSet 데이터에인덱스를만들수있습니다. 이런메모리인덱스를이용하면데이터베이스에인덱스를유지하는오버헤드없이즉시레코드의보기순서를변경하거나레코드를찾아갈수있습니다. 자동요약정보 ClientDataSet은 Sum(Price)-Sum(Cost) 와같이사용자가정의한복잡한합계산을자동으로보존합니다. 합계산을필드별또는필드의결합으로그룹하여그룹합계를구할수있습니다. 또한, Min, Max, Count 및 Avg ( 평균 ) 합계를사용할수있습니다. 데이터서브셋뷰 SQL WHERE 구문에서필터표현을사용하면데이터베이스서버에서추가로쿼리를실행하지않고도 ClientDataSet에있는레코드의서브셋을쉽게표시할수있습니다.

3 다중동시데이터뷰 ClientDataSet 커서를복제하는기능으로 ClientDataSet에있는데이터의여러서브셋을동시에볼수있습니다. 또한동일데이터를다르게정렬하여볼수도있습니다. 서버에부하를주지않는계산필드디자인타임에 ClientDataSet에계산필드를추가하여계산필드를메모리데이터셋의부분으로만들수있습니다. 계산은컴파일된델파이또는 C++ 언어코드로실행되므로, SQL 문안에있는계산된컬럼이나스토어드프로시저안의계산보다더빠르고훨씬더복잡해질수있으면서도데이터베이스서버에저장공간이나계산부담을주지않습니다. 실질적으로제한이없음메모리에레코드들을보유함으로해서작업할수있는레코드수에제한이따를것처럼느껴질수있습니다. 그러나, 전통적인클라이언트 / 서버애플리케이션디자인에서는네트워크트래픽과데이터베이스서버의부하를최소화하기위해작은레코드셋만을셀렉트해왔다는점을상기해보십시오. 예외적으로많은레코드들을작업해야하는경우라도, 각각 100바이트를가지는 10,000개의레코드의경우단지 1MB의메모리만을필요로합니다. 대단히많은수의레코드로작업해야하는드문경우라도, ClientDataSet와 DataSetProvider에는레코드의일부를가져와서편집하고메모리에서제거한후에다음레코드그룹을가져오는속성및이벤트들이포함되어있습니다. 더욱용이한배포 dbexpress를사용하는애플리케이션은단지두개의 DLL만을필요로합니다. 하나는 dbexpress 드라이버이며 ( 예를들어볼랜드 InterBase의경우 DBEXPINT.DLL), 다른하나는 ClientDataSet 지원라이브러리인 MIDAS.DLL입니다. 이두개의 DLL은합쳐도크기가 0.5 MB 미만입니다. 따라서애플리케이션의크기를최소화할수있고설치가간단합니다. 이들 DLL들을배포하는것이마음에들지않는다면 EXE에직접컴파일하여포함시킬수도있습니다. 리눅스에서의배포도 DLL 대신에두개의 shared object 라이브러리를사용한다는점을제외하고는동일합니다. 더쉬운드라이버개발 dbexpress 드라이버는온라인헬프에설명된 5개의인터페이스를구현해야합니다. 볼랜드는모델로서 MySQL 드라이버의소스코드를제공합니다. 이를참조하면데이터베이스판매회사는강력한고성능드라이버를쉽게만들수있습니다. 잘사용되어지지않거나오래된데이터베이스로작업하는경우상업적으로구입할수있는드라이버가없는경우, 드라이버를직접만들어사용할수도있습니다. dbexpress 애플리케이션개발 기존의 BDE 애플리케이션을 dbexpress로변환하기이전에 dbexpress 컴포넌트의사용방법을잘알아야합니다. 여기에서는 dbexpress 애플리케이션을단계별로생성하면서각컴포넌트에대하여설명하겠습니다. 이예는윈도우플랫폼에서볼랜드 Delphi를사용하여개발하는것이지만윈도우에서 C++Builder로개발하는경우, 그리고리눅스플랫폼에서볼랜드 Kylix를사용하는절차도이와동일합니다. 샘플애플리케이션은 InterBase 샘플 EMPLOYEE.GDB 데이터베이스를사용하며, Employee 테이블과 Salary History 테이블사이에는일대다관계가있습니다. 샘플애플리케이션은다음과같은 dbexpress의기능을보여줍니다. 마스터테이블의필드에디테일테이블을포함시키기 SQLQuery, DataSetProvider 및 ClientDataSet 컴포넌트를이용하여데이터편집하기 DataSetProvider와 ClientDataSet 없이 SQLQuery를읽기전용데이터셋으로사용하기 ClientDataSet의수정사항을데이터베이스에적용하기 수정사항을데이터베이스에적용할때발생하는오류처리하기 SQLConnection 컴포넌트 간단한 dbexpress 애플리케이션을생성하려면다음절차에따릅니다.

4 1. 새애플리케이션을생성한후에데이터모듈을추가합니다. 데이터모듈의이름을 MainDm로정합니다. 2. Project Options 다이얼로그를사용하여메인폼이생성되기전에데이터모듈이자동으로생성되도록합니다. 3. SQLConnection 컴포넌트 ( 컴포넌트팔레트의 dbexpress 페이지 ) 를데이터모듈에놓습니다. 4. SQLConnection 컴포넌트의이름을 EmployeeConnection 이라고정하고 DriverName 속성을 InterBase로설정합니다. 5. Params 속성의속성에디터를열고 Database 파라미터를샘플 InterBase 데이터베이스인 EMPLOYEE.GDB의경로로설정합니다. 디폴트로설치했다면 c:\program files\borland \interbase\examples\database\employee.gdb 일것입니다. 6. InterBase 서버에연결하기위하여다른값이필요하다면, UserName과 Password 매개변수를변경합니다. 7. LoginPrompt 속성을 false로설정하여프로그램을실행할때마다사용자이름과비밀번호를입력하지않게합니다. 8. Connected 속성을 true로설정하여연결상태를테스트한후에다시 false로설정합니다. SQLConnection 컴포넌트는여러개의데이터셋컴포넌트에대해서데이터베이스연결을제공합니다. 많은데이터베이스에동시에연결할경우에는여러개의 SQLConnection 컴포넌트를사용할수있습니다. 데이터베이스에대한연결을정의하는방법은세가지가있습니다. 이전에이름을붙였던연결을사용하거나, 새로운이름의연결을생성하거나, SQLConnection 컴포넌트의 Params 속성에연결파라미터를넣는방법이있습니다. 기존의연결이름을사용하려면 ConnectionName 속성에지정하면됩니다. dbexpress 커넥션에디터새로운연결이름을생성하려면 SQLConnection 컴포넌트를더블클릭하여 dbexpress 커넥션에디터를 엽니다. 왼쪽에있는 Connection Name 리스트박스에이미정의된연결들이나열됩니다. Driver 드롭다운리스트에서 Connection Names를필터링하여선택한드라이버에대한연결만표시할수도있습니다. 오른쪽에있는 Connection Settings 그리드는선택한연결에대한연결설정을표시합니다. 생성한모든연결은 dbxconnections.ini 파일에저장됩니다. 커넥션에디터연결파일연결이름을생성한후에는 SQLConnection의 ConnectionName 속성에이를지정할수있습니다. 연결이름을사용하는경우배포할때애플리케이션과함께연결파일을배포하거나, 대상컴퓨터에서기존의연결파일을찾아서연결이름을추가해야합니다. SQLConnection 컴포넌트의 Params 속성 SQLConnection 컴포넌트의 DriverName 속성을설정하는또다른방법이있습니다. DriverName 속성의드롭다운리스트에는시스템에설치되어있는모든드라이버를보여줍니다. 드라이버정보는 dbxdrivers.ini 파일에들어있습니다. DriverName 속성을설정하면드라이버파일에들어있는정보를이용하여 LibraryName와 VendorLib 속성도같이설정됩니다. LibraryName에는 dbexpress 드라이버 DLL의이름이들어있고, VendorLib에는데이터베이스판매회사의클라이언트라이브러리파일이들어있습니다.

5 앞의화면과같이 SQLConnection 컴포넌트의 Params 속성에커넥션에디터의연결매개변수를입력합니다. 이방법을사용하면연결정보가모두애플리케이션에포함됩니다. 애플리케이션사용자가연결파라미터를변경할수있도록하려면애플리케이션자체의설정파일에이를저장하고애플리케이션내부에서또는별도의설정프로그램을이용하여파일을편집하는방법을알려줄수있습니다. 이렇게하면각애플리케이션이모든것을완전하게갖추게됩니다. 또한, SQLConnection 컴포넌트는트랜잭션제어를위한 StartTransaction, Commit 및 Rollback 메소드를제공합니다. 결과를반환하지않는 SQL 문장을실행하는경우에는 SQLConnection 컴포넌트의 Execute 또는 ExecuteDirect 메소드를사용할수있으며, 데이터셋컴포넌트는필요하지않습니다. 작업하고있는데이터베이스의메타데이터를액세스해야하는경우 SQLConnection의 GetTableNames, GetFieldNames 및 GetIndexNames 메소드를이용할수있습니다. 문장의경우에는 SQLQuery에서 Open 메소드를호출하거나 Active 속성을 true로설정합니다. 커서를반환하지않는문장의경우에는 ExecSQL 메소드를호출합니다. 다음과같이샘플애플리케이션의구축을계속합니다. 1. 3개의 SQLQuery 컴포넌트를데이터모듈에끌어다놓습니다. 2. 세컴포넌트의 SQLConnection 속성을모두 EmployeeConnection로설정합니다. 3. 각각의이름을 EmployeeQry, HistoryQry 및 DeptQry로정합니다. 4. EmployeeQry의 SQL 속성을다음과같이설정합니다. SELECT * FROM EMPLOYEE WHERE DEPT_NO = :DEPT_NO ORDER BY LAST_NAME 5. HistoryQry의 SQL 속성을다음과같이설정합니다. SELECT * FROM SALARY_HISTORY WHERE EMP_NO = :EMP_NO 데이터셋컴포넌트 dbexpress는 SQLDataSet, SQLQuery, SQLStoredProc 및 SQLTable의네가지데이터셋컴포넌트를제공합니다. SQLDataSet은새로운애플리케이션을작성할때선택하는컴포넌트입니다. CommandType 속성을설정하면 SQL 문장을실행하고, 스토어드프로시저를호출하거나테이블에있는모든행과열에액세스할수있습니다. 나머지데이터셋컴포넌트들은각각의 BDE 해당컴포넌트들과가급적비슷하게디자인되어있습니다. 이러한컴포넌트를사용하면 BDE 애플리케이션을 dbexpress로쉽게변환할수있습니다. SQLQuery SQLQuery 컴포넌트의속성과메소드는 BDE Query 컴포넌트와아주흡사합니다. SQLQuery는읽기전용의단방향결과세트를반환하므로 BDE에관련된메소드 / 속성이나편집에관련된속성 / 메소드는없습니다. SQLQuery는 DML과 DDL 양쪽모두의 SQL을실행하기위해사용될수있습니다. 결과셋에커서를반환하는 6. DeptQry의 SQL 속성을다음과같이설정합니다. SELECT DEPT_NO, DEPARTMENT FROM DEPARTMENT ORDER BY DEPARTMENT 7. DataSource 하나를데이터모듈에떨어뜨리고, 이름을 EmpLinkSrc로정한후에 DataSet 속성을 EmployeeQry로설정합니다. 8. HistoryQry의 DataSource 속성을 EmpLinkSrc로설정합니다. 9. EmployeeQry로되돌아가서 Params 속성편집기를열고 DEPT_NO 매개변수의값을 XXX로설정합니다. 이것은잘못된값이므로사용자가올바른부서번호를입력할때까지아무레코드도표시되지않습니다. 10. EmployeeQry를더블클릭하여필드에디터를열고모든필드에대하여필드객체를추가합니다. 11. EMP_NO 필드를선택하여 ProviderFlags 속성을확장한후에 pfinkey를 true로설정합니다. pfinkey

6 플래그를 true로설정하면 EMP_NO 필드가기본키로인식됩니다. SQL 문장이변경사항을데이터베이스에적용하도록구성하려면 DataSetProvider( 나중에추가 ) 가이정보를알아야합니다. 12. FULL_NAME 필드를선택하여 ProfiderFlags 속성을확장한후에 pfinupdate와 pfinwhere를 false로설정합니다. FULL_NAME은계산필드이므로 DataSetProvider에의하여생성되는 SQL 문장의 WHERE 절에포함되거나갱신되지않아야합니다. 13. EmployeeQry의 Active 속성을 true로설정합니다. 14. HistoryQry를더블클릭하여 Fields Editor를열고모든필드객체를추가합니다. 15. Fields Editor에서 EMP_NO 필드를선택한후에 ProviderFlags 속성에서 pfinkey를 true로설정합니다. 이과정을주키의일부인 CHANGE_DATE와 UPDATER_ID 필드에대하여반복합니다. 16. NEW_SALARY 필드도계산되는필드이므로이것을선택하여 pfinupdate와 pfinwhere 프로바이더플래그를 false로설정합니다. 17. EmployeeQry와 HistoryQry의 Active 속성을 false로설정합니다. 18. EmployeeConnection의 Connected 속성을 false로설정합니다. SQLTable SQLTable 컴포넌트는 BDE의 Table 컴포넌트와비슷합니다. BDE에서와같이테이블에있는모든행과열을반환합니다. 그렇기때문에클라이언트 / 서버애플리케이션에알맞은방법은아닙니다. 이것의유일한장점은 BDE Table 컴포넌트를사용하는로컬데이터베이스애플리케이션을 dbexpress와데이터베이스서버로빠르게변환하는데에있습니다. SQLTable을사용하려면 SQLConnection 속성을 SQLConnection 컴포넌트로설정합니다. TableName 속성을액세스하고자하는테이블의이름으로설정합니다. Active 속성을 true로설정하거나 Open 메소드를호출하여테이블을엽니다. SQLStoredProc BDE 애플리케이션에서 BDE StoredProc 컴포넌트를사용한것과같은방법으로 SQLStoredProc 컴포넌트를사용하여스토어드프로시저를호출합니다. SQLDataSet 컴포넌트를사용하여스토어드프로시저를호출할수도있으나, SQLStoredProc 컴포넌트는 BDE StoredProc 컴포넌트와거의같기때문에이것을사용하여 BDE 애플리케이션을전환하는것이더쉽습니다. SQLStoredProc를사용하려면 SQLConnection 속성을 SQLConnection 컴포넌트로설정하고, StoredProcName 속성을실행하고자하는스토어드프로시저의이름으로설정합니다. 스토어드프로시저가레코드들에대한커서를반환하는경우에는 SQLStoredProc의 Active 속성을 true로설정하거나 Open 메소드를호출하여실행합니다. 스토어드프로시저가결과셋에대한커서를반송하지않으면 ExecProc 메소드를호출하여실행합니다. SQLDataSet SQLDataSet를사용하려면 SQLConnection 속성을사용하고자하는 SQLConnection 컴포넌트로설정합니다. 다음으로, CommandType 속성을 ctquery, ctstoredproc 또는 cttable에설정합니다. 대개의경우기본값인 ctquery을사용하게됩니다. CommandText 속성의값은 CommandType의값에따라다릅니다. CommandType이 ctquery인경우, CommandText는실행할 SQL 문을포함합니다. CommandType이 ctstoredproc인경우, CommandText는스토어드프로시저의이름입니다. CommandType이 cttable인경우, CommandText는테이블의이름입니다. Params 속성을사용하여 파라미터화된 쿼리또는스토어드프로시저에대한파라미터를제공하고, DataSource 속성을사용하여 SQLDataSet을마스터 / 디테일관계에있는다른데이터셋컴포넌트에연결합니다. SQLDataSet가레코드셋에대한커서를반환하는경우에는 Open 메소드를호출하거나 Active 속성을 true로설정하여엽니다. 만일결과셋을반송하지않으면 ExecSQL 메소드를호출합니다. SQLDataSet는읽기전용의단방향커서만을제공합니다. 리포트인쇄등에서처럼이것이필요한유일한액세스라면

7 레포트툴의요구사항에따라 SQLDataSet만을사용하거나 DataSource 컴포넌트와함께사용할수있습니다. 레코드안을앞혹은뒤로이동하거나데이터를편집해야하는경우에는 DataSetProvider와 ClientDataSet를추가하거나이문서에서다음에설명할 SimpleDataSet 컴포넌트를사용합니다. SQLConnection의메소드들이제공하는정보이상의자세한메타데이터정보가필요한경우에는 SQLDataSet 컴포넌트의 SetSchemaInfo 메소드를이용합니다. SetSchemaInfo는 SchemaType, SchemaObject 및 SchemaPattern 의세가지파라미터를가집니다. SchemaType은 stnone, sttables, stsystables, stprocedures, stcolumns, stprocedureparams, stindexes 가운데하나일수있습니다. 이파라미터는 SQLDataSet가열렸을때포함되는정보의종류를표시합니다. SQL 문장이나스토어드프로시저를사용하여테이블에서정보를추출할때스키마종류는 stnone로설정됩니다. 다른스키마종류들은각각반환되는정보에적절한구조에맞춰데이터셋을생성합니다. SchemaObject는스토어드프로시저또는테이블이름이필요한경우의그이름입니다. SchemaPattern은결과셋을필터링할 SQL 패턴을제공합니다. 예를들어, SchemaType이테이블이고 SchemaPattern이 EMP% 인경우데이터셋은 EMP로시작하는테이블만포함합니다. SimpleDataSet BDE을사용하여레코드를보고편집하려면 TQuery를데이터모듈에끌어다놓고두가지속성을설정하면됩니다. dbexpress의경우에는 SQLQuery 또는 SQLDataSet와 DataSetProvider, ClientDataSet를데이터모듈에끌어다놓고속성을설정하여이들을함께연결시킵니다. 세가지컴포넌트를추가하고속성을설정하는추가적인시간을절약하는두가지방법이있습니다. 볼랜드 Delphi 7 Studio에는 SimpleDataSet 컴포넌트가도입되었습니다. 이 SimpleDataSet은 SQLDataSet, DataSetProvider 및 ClientDataSet를하나의컴포넌트로결합한것입니다. 만일단일테이블또는스토어드프로시저로부터레코드를보고편집하는작업만필요한경우 SimpleDataSet이빠른방법입니다. 단지이것을데이터모듈에추가하고 Connection 속성을 SQLConnection 컴포넌트로설정한후내장된 SQLDataSet 컴포넌트의 CommandType과 CommandText 속성을설정하면끝입니다. SimpleDataSet 컴포넌트는약간의제한사항을가지고있습니다. 멀티티어애플리케이션에서는사용할수없습니다. 앞으로애플리케이션을멀티티어로변환해야할가능성이있다면분리된컴포넌트들을사용하십시오. 자식데이터셋을데이터셋필드로 SimpleDataSet에연결할수없습니다. 내부 DataSetProvider의이벤트들이모두노출되지않습니다. 내부 DataSetProvider의 Options 속성이노출되지않습니다. 프로바이더옵션을디자인타임또는런타임에설정할수없습니다. 디자인타임에내부데이터셋에대한필드객체를생성할수없습니다. 이것은디자인타임에필드객체의 ProviderFlags 속성을설정할수없다는것을의미합니다. 이것은코드내에서할수밖에없습니다. ClientDataSet 컴포넌트의내부데이터베이스인볼랜드 MyBase만을사용하고데이터베이스서버에연결하지않는경우에는 ClientDataSet만을사용하게되면애플리케이션의리소스요구를줄일수있습니다. 내부에포함된 SQLDataSet의속성및메소드는 SQLQuery의속성및메소드만큼 BDE Query 컴포넌트의속성과비슷하지않습니다. 그러므로, 프로젝트를변환하는과정에서 SimpleDataSet을사용하면코드변경이더많이필요하게됩니다. SimpleDataSet가제공하는것보다더욱유연성이필요한경우에는 SQLQuery, DataSetProvider, ClientDataSet를폼또는데이터모듈에끌어다놓습니다. SQLQuery의 Connection 속성을설정하고, DataProvider의 DataSet 속성을 SQLQuery에연결하도록설정합니다. ClientDataSet의 ProviderName 속성을 DataSetProvider에연결하도록설정하고, 3개의컴포넌트모두선택한후에메인메뉴에서 Component Create Component Template를선택합니다. 새로운템플릿을위한클래스이름과팔레트페이지를

8 지정합니다. 이제, 하나의컴포넌트를끌어다놓는것만큼쉽게세개의별개의컴포넌트를데이터모듈에끌어다놓을수있습니다. SQLMonitor DbExpress의마지막컴포넌트인 SQLMonitor는애플리케이션의성능튜닝을도와주기위한컴포넌트입니다. SQLMonitor는 SQLConnection 컴포넌트와이것과연결된데이터베이스서버사이를겨쳐가는모든 SQL 문을체크합니다. SQL 문장은파일에기록되거나, 메모컴포넌트에표시되거나, 기타원하는방법으로처리될수있습니다. 데이터액세스컴포넌트 양방향스크롤과데이터를갱신하는기능이필요한경우, DataSetProvider 및 ClientDataSet 컴포넌트를사용해야합니다. DataSetProvider DataSetProvider는 DataSet 속성을통하여 dbexpress 데이터셋중하나와연결됩니다. DataSetProvider는요청에따라 ClientDataSet에데이터를제공하고, ClientDataSet이제공하는변경로그를이용하여데이터베이스갱신을위한 SQL DML 문장을생성합니다. 샘플애플리케이션을위한데이터모듈로돌아가서, 다음의단계를수행합니다. 1. DataSetProvider( 컴포넌트팔레트의 Data Access 페이지 ) 를추가합니다. 2. DataSet 속성을 EmployeeQry로설정하고, Name 속성을 EmployeeProv로설정합니다. DataSetProvider의 UpdateMode 속성은사용자가갱신하려는레코드를다른사용자가갱신하였는지에대해프로바이더가어떻게판단할지를제어할수있습니다. 프로바이더가데이터베이스를갱신하는 SQL 문장을발생시킬때각 UPDATE와 DELETE 문장에는레코드를식별하기위해 WHERE 절이포함됩니다. 만약 UpdateMode 를 upwhereall로설정하면, 그레코드에속한필드들중 Blob 필드가아니고 pfinwhere 프로바이더플래그가 false가아닌필드의원래값이 WHERE 절에포함됩니다. 이것은다른사람이이필드들중하나라도변경하면 UPDATE 또는 DELETE가실패한다는것을의미합니다. UpdateMode 를 upwherechanged로설정하면변경된필드만이 WHERE 절에포함됩니다. UpdateMode를 upwherekeyonly로설정하면기본키필드만을포함하는 WHERE 절이생성됩니다. 프로바이더의 Options 속성에는 provide/resolve 과정을제어하는여러플래그가포함됩니다. pocascadedeletes 옵션이 true이면삭제한마스터레코드에대한디테일레코드를삭제하기위한 SQL 문장을생성하지않습니다. 프로바이더는데이터베이스서버가연쇄삭제를지원하여자동으로디테일레코드를삭제하는것으로가정합니다. pocascadeupdates 옵션은마스터테이블의기본키에대한변경사항에대하여같은기능을제공합니다. 프로바이더에데이터를제공하는 SQLQuery가 SQL 문장에 ORDER BY 절을가지는경우, 레코드들이 ClientDataSet에서의순서를유지하도록하려면 poretainserverorder 플래그를 true로설정합니다. 만일 ClientDataSet의 CommandText 속성을변경하여 SQLQuery의 SQL 문장을변경할수있도록하려면 poallowcommandtext 옵션을 true로설정합니다. DataSetProvider의 BeforeUpdateRecord 이벤트핸들러를생성한경우, 이벤트핸들러가데이터베이스가갱신되기전에레코드에있는필드의값을변경할수있다면 popropogatechanges 옵션을 true로설정합니다. 그러면프로바이더는모든변경사항을 ClientDataSet로돌려보내메모리에들어있는레코드를갱신합니다. DataSetProvider에는유용한이벤트가많지만, 가장중요한두가지는 OnGetTableName와 BeforeUpdateRecord입니다. 여러테이블의조인, 스토어드프로시저또는읽기전용뷰에서리턴된행은데이터베이스애플리케이션에서직접편집할수없습니다. DataSetProvider에는이러한상황을처리할수있는세가지도구가있습니다. 스토어드프로시저가리턴한레코드들처럼레코드들이단일테이블의필드를포함하고

9 있는경우, 유일한문제는 DataSetProvider가갱신해야할테이블의이름을알아낼방법이없다는것입니다. 이에대한해법은테이블의이름을리턴하는 DataSetProvider의 OnGetTableName 이벤트핸들러를생성하는것입니다. 두번째가능성은여러테이블의조인에서단일테이블의필드가갱신되어야하는경우입니다. 먼저, 갱신될필드들을식별하도록개별필드의 ProviderFlags 속성을설정합니다. 다음으로테이블이름을리턴할 OnGetTableName 이벤트핸들러를생성하면프로바이더가자동으로 SQL 문장을생성합니다. 각레코드에대하여여러테이블을갱신해야한다면 BeforeUpdateRecord 이벤트핸들러를 DataSetProvider에추가합니다. 이벤트핸들러에서는각테이블에대한 SQL 문장을발생시켜실행할수있습니다. BeforeUpdateRecord 이벤트핸들러도갱신하기전에각레코드를검사하고필드의값을변경할장소를제공합니다. 예외를발생시켜서갱신을전체적으로봉쇄할수도있습니다. 이런이유로 BeforeUpdateRecord는비즈니스룰을적용할수있는좋은장소입니다. ClientDataSet ClientDataSet는 ProviderName 속성을통하여 DataSetProvider에연결됩니다. 이것은 DataSetProvider로부터데이터를받아서메모리에데이터를저장하고, 변경사항을기록하고, ClientDataSet ApplyUpdates 메소드가호출되면변경사항을 DataSetProvider에보냅니다. HistoryQry 컴포넌트가반환하는레코드는 EmployeQry 결과셋안에네스트된데이터셋으로표시됩니다. 이것은 SQLClientDataSets의 DataSource 속성의 HistoryQry이 EmployeeQry에연결된 EmpLinkSrc로설정되어있으며 EmployeeQry 레코드로부터 SQL 문장에대한매개변수값을취하기때문입니다. 4. EmployeeCds을마우스오른쪽으로클릭한후에팝업메뉴에서 Fetch Params를선택하면 ClientDataSet가매개변수목록을갱신하여 EmployeeQry 컴포넌트와일치되도록합니다. 5. 두번째 ClientDataSet를 HistoryCds로설정하고, DataSetField 속성을 EmployeeCdsHistoryQry로설정하면 EmployeeCds에있는네스트된데이터셋필드로부터데이터를읽어들입니다. 6. HistoryCds를더블클릭하여모든필드를추가합니다. 7. 두개의 DataSource 컴포넌트를데이터모듈에떨어뜨린후에이름을 EmployeeSrc와 HistorySrc로정합니다. 8. 이들의 DataSet 속성을각각 EmployeeCds와 HistoryCds로설정합니다. 이제 EmployeeCds와 HistoryCds 컴포넌트의 Active 속성을 true로설정할수있을것입니다. 데이터모듈은다음그림과비슷할것입니다. 다음과같이샘플애플리케이션을계속합니다. 1. 두개의 ClientDataSet를샘플애플리케이션에있는데이터모듈에끌어다놓습니다. 2. 첫번째것의 ProviderName 속성을 EmployeeProv로설정하고, Name 속성을 EmployeeCds로설정합니다. 3. EmployeeCds를더블클릭하여 Fields Editor를연후에모든필드객체를추가합니다. Fields Editor에있는마지막필드객체의이름은 HistoryQry입니다. 이것은네스트된데이터셋필드로, 각종업원레코드에대한급여이력레코드가들어있습니다. 데이터모듈은이그림과비슷할것입니다

10 네스트된디테일데이터셋은마스터와디테일데이터셋에대한갱신적용순서가혼동되지않도록하므로대단히강력합니다. 예를들어, 하나또는그이상의디테일레코드가있는새로운마스터레코드가추가되는경우, 마스터레코드 INSERT는디테일레코드에대한 INSERT 문장보다앞서서처리되어야합니다. 그러나, 마스터에대한디테일레코드를삭제한후에마스터레코드를삭제하면, 디테일레코드에대한 DELETE 문장이마스터에대한삭제에앞서서처리되어야합니다. 네스트된데이터셋을사용하면 DataSetProvider는데이터베이스서버에서의오류를방지하기위하여올바른순서로갱신이처리되도록보장합니다. ClientDataSet에는몇가지유용한속성이있습니다. Aggregates 속성은데이터셋에있는숫자필드의합, 최소, 최대, 개수또는평균을자동으로계산하는집계필드를제공합니다. 집계는색인으로그룹화할수있습니다. AggregatesActive 속성을통해런타임에집계계산을활성화하거나비활성화할수있습니다. 세미콜론으로구분된필드이름목록을 IndexFieldNames 속성에할당하면해당필드별로오름차순으로 ClientDataSet에있는레코드를정렬합니다. 내림차순으로정렬하거나매우큰데이터셋에서더빠른성능을얻으려면정렬하고자하는필드에색인을만들어서색인이름을 ClientDataSet의 IndexName 속성에할당합니다. CommandText 속성을사용하면 DataSetProvider에데이터를제공하는컴포넌트내의 SQL 문장을변경할수있습니다. ClientDataSet을닫고새로운 SQL 문장을 CommandText에할당한후에, ClientDataSet를열어서새로운쿼리가반환한레코드를보십시오. ClientDataSet의 Params 속성을사용하여소스데이터셋의 SQL 문장에있는매개변수에새값을할당할수도있습니다. 소스데이터셋의속성을직접액세스하는대신 ClientDataSet의 CommandText와 Params 속성을사용해야하는이유는무엇일까요? 이것은장래에프로그램을멀티티어볼랜드 DataSnap 애플리케이션으로전환하는경우코드를변경하지않아도되는장점이있기때문입니다. PacketRecords 속성은프로바이더가서버에서한번에가져오는레코드의수를제어합니다. 기본값인 1은소스데이터셋의 SQL 문장이반환한레코드를프로바이더가모두가져오는것입니다. 일반적으로이것을문제가되지않지만, 레코드수가매우많은경우에는레코드를나누어서가져올필요가있습니다. BDE와 dbexpress의 provide/resolve구조의가장큰차이점가운데하나는, 변경로그에있는변경사항을데이터베이스에적용하려면 ClientDataSet의 ApplyUpdates 메소드를호출해야한다는것입니다. 변경로그에적용되지않은변경사항이있는지여부를알려면 ChangeCount 속성을사용합니다. ApplyUpdates는한개의파라미터를가집니다. 이매개변수는오류의갯수인데, 허용치를초과하였을경우프로세스를롤백하고종료됩니다. 일반적으로 0으로설정함으로써오류가발생하자마자갱신프로세스가멈추도록합니다. 1로설정하면발생된오류의수에관계없이변경로그에있는변경사항을 DataSetProvider가모두적용합니다. 갱신오류가발생하면 ClientDataSet의 OnReconcileError 이벤트가발생합니다. 데모애플리케이션에서갱신오류를처리하려면다음절차를따릅니다. 1. Object Repository의 Dialogs 페이지로부터 Reconcile Error Dialog를프로젝트에추가합니다. 2. 데이터모듈의 uses 절에 Reconcile Error Dialog 유닛을추가합니다. 3. Reconcile Error Dialog가자동으로생성되지않도록확인합니다. 4. EmployeeCds에대한 OnReconcile 오류이벤트핸들러를생성한후에다음코드를추가합니다. Action := HandleReconcileError( DataSet, UpdateKind, E); 업데이트를적용할때에오류가발생하면 Reconcile Error Dialog가오류메시지와오류를발생시킨레코드및유저가처리방법을선택할수있는버튼들을보여줍니다. 샘플애플리케이션을마치려면다음절차를따릅니다.

11 1. Panel, DBGrids, DBNavigators 를각각두개씩메인 폼에추가하여아래의그림과같이구성합니다. 8. 다음과같은코드를 Button 의 OnClick 의이벤트 핸들러에추가합니다. 2. 데이터모듈유닛을폼유닛의 uses 절에추가합니다. 3. 위의 DBGrid와 DBNavigator의 DataSource 속성을 EmployeeSrc DataSource 컴포넌트로설정합니다. 4. 아래의 DBGrid와 DBNavigator의 DataSource 속성을 HistorySrc DataSource 컴포넌트로설정합니다. 5. Label 컴포넌트와 ComboBox 컴포넌트를위의 Panel에추가합니다. 6. ComboBox에 OnChange 이벤트핸들러를생성하고아래의코드를추가합니다. procedure TMainForm.DeptComboChange(Sender: TObject); with MainDm.EmployeeCds do if Active then CheckBrowseMode; Close; Params.ParamByName('DEPT_NO').AsString := Copy(DeptCombo.Text, 1, 3); Open; end; //with end; 7. Button 컴포넌트를위의 Panel에추가한후에캡션을 Save Changes로설정합니다. procedure TMainForm.SaveBtnClick(Sender: TObject); with MainDm do if EmployeeCds.ChangeCount > 0 then if HistoryCds.Active then HistoryCds.CheckBrowseMode; if EmployeeCds.Active then EmployeeCds.CheckBrowseMode; EmployeeCds.ApplyUpdates(0); EmployeeCds.Refresh; end; //if end; //with end; 9. department ComboBox를채울메소드를추가합니다. procedure TMainForm.LoadDeptCombo; with MainDm do DeptQry.Open; while not DeptQry.Eof do DeptCombo.Items.Add( DeptQryDept_No.AsString + ' ' + DeptQryDepartment.AsString); DeptQry.Next; end; //while DeptQry.Close; end; //with end; 10. 폼의 OnCreate 이벤트핸들러를생성하여다음과같은코드를추가합니다. procedure TMainForm.FormCreate(Sender: TObject); MainDm.EmployeeCds.Open; LoadDeptCombo; end;

12 BDE 와 dbexpress 의비교 아래의표는 BDE 와 dbexpress 를몇가지핵심적인 영역에서비교한것입니다. 이를통해전체적인차이점을 알수있습니다. 두번째표는각 BDE 컴포넌트에 해당하는 dbexpress 컴포넌트를보여줍니다. 기능 BDE DbExpress 레코드버퍼링 네트워크트래픽제어 트랜잭션제어 배포 크로스플랫폼 써드파티드라이버 아래는각 BDE 가로컬메모리에서보관할레코드의수를결정합니다. BDE 가서버로부터가져올레코드의수를결정합니다. 수동및자동트랜잭션제어가가능합니다. 트랜잭션은사용자가데이터를편집하는동안활성화됩니다. 배포크기가큽니다. ( 약 18MB) 설치와구성이복잡하며, 레지스트리변경이필요합니다. 윈도우 개발이어렵습니다. 실제로존재하는것이거의없습니다. 개발자가로컬에보관할레코드의수를결정합니다. 사용자가서버에서가져올레코드의수와시기를결정합니다. 수동및자동트랜잭션제어가가능합니다. 트랜잭션은갱신이적용되는짧은순간에만활성화됩니다. 총 0.5 MB 미만의 DLL 2 개만필요하며, 사용자의 EXE 에컴파일되어포함될수있습니다. dbxconnections.ini 와 dbxdrivers.ini 파일을배포하지않는한레지스트리를변경할필요가없습니다. 윈도우, 리눅스 개발이쉬우며많이존재합니다. 써드파티드라이버에관한정보는 Borland Developer Network 웹사이트 bdn.borland.com 를참조하십시오. BDE 컴포넌트에해당하는 dbexpress 컴포넌트들을보여주는표입니다. dbexpress 에는 BDE BatchMove 컴포넌트에해당하는것이없습니다. 세션의개념은 dbexpress 에존재하지않기때문에 BDE 세션컴포넌트에대응하는것이필요없습니다. BDE UpdateSQL 컴포넌트는 BDE 의 Query 컴포넌트의캐시 업데이트기능과함께만사용됩니다. dbexpress 의경우에는 ClientDataSet 컴포넌트의기능이이기능을대신합니다. 네스트된데이터셋을처리하는기능은 dbexpress 의 DataSetProvider 와 ClientDataSet 컴포넌트에내장되어 있습니다. BDE SQL Links 애플리케이션을 dbexpress 로마이그레이션하기 BDE 와 SQL Links 드라이버를사용하는애플리케이션을 dbexpress 로전환하려면다음의절차가필요합니다. 대부분의클라이언트 / 서버애플리케이션은 BDE 의 Table 컴포넌트를사용하지않습니다. 로컬데이터베이스 애플리케이션은 BDE 의 Table 컴포넌트를대단히많이 사용하므로, 뒤에나오는 로컬데이터베이스 애플리케이션을 dbexpress 로마이그레이션하기 에서 다룹니다. BDE Database 컴포넌트를 SQLConnection 컴포넌트로바꿉니다. BDE Query와 StoredProc 컴포넌트를 SQLQuery 및 SQLStoredProc 컴포넌트로바꿉니다. BDE TDatabase TQuery TStoredProc TTable No equivalent TBatchMove SQL Monitor Utility Session UpdateSQL NestedDataSet BDEClientDataSet DbExpress TSQLConnection TSQLQuery TSQLStoredProc TSQLTable TSQLDataSet No equivalent TSQLMonitor N/A N/A N/A SimpleDataSet 양방향스크롤링과편집이필요한각 SQLQuery와 SQLStoredProc에대하여 DataSetProvider와 ClientDataSet를추가합니다. BDE Database를 SQLConnection으로바꾸기 각 BDE 데이터베이스컴포넌트를 SQLConnection 컴포넌트로바꾸어야합니다.

13 연결매개변수설정하기애플리케이션을변경하지않고데이터베이스연결을변경하기위하여 BDE 알리아스를사용하는경우에는 dbexpress 연결이름을사용하거나연결파라미터를 INI 파일에저장해야합니다. 가장유연성있고강력한방법은연결파라미터를가진애플리케이션자신만의 INI 파일을이용하는것입니다. 이방법을선택하면 INI 파일을읽기위한코드를애플리케이션에추가하고시작할때에 SQLConnection 컴포넌트의 Params 속성을설정해야합니다. INI 파일에있는연결파라미터를편집하기위한코드를애플리케이션에추가할수도있습니다. 트랜잭션의처리애플리케이션을변환하기전에해야할중요한결정가운데하나는트랜잭션제어를어떻게제어할것인가입니다. BDE 애플리케이션에서트랜잭션제어를 BDE가자동으로처리하도록한경우에는변경사항을데이터에저장하고자하는곳마다 ApplyUpdates의호출을추가하기만하면됩니다. 이렇게하면 dbexpress는 BDE처럼트랜잭션을처리해줄것입니다. 갱신후에도같은레코드셋으로작업을계속할경우에는 ClientDataSet Refresh 메소드를호출해야합니다. 호출하면소스쿼리를재실행하고, 새로운결과셋을 ClientDataSet에읽어들입니다. 그러면그사이에다른사람이실행한변경사항을볼수있습니다. BDE 애플리케이션이 StartTransaction, Commit 및 Rollback을명시적으로호출하는경우에는선택이더복잡해집니다. 한가지선택방법은코드와관련된트랜잭션을모두제거하고 Commit에대한각호출을해당 ClientDataSet의 ApplyUpdates 메소드에대한호출로대체하는것입니다. 그러면 dbexpress가트랜잭션을대신처리해주고코드를간단하게합니다. 이방법을실행할수없는단한가지경우는두개이상의 ClientDataSet의갱신을하나의트랜잭션에결합해야하는경우입니다. 명시적인 Rollback 호출은 ClientDataSet CancelUpdates 메소드에대한호출로대체해야합니다. CancelUpdates은 ClientDataset의변경로그에남아있는변경사항을취소시킵니다. 다른선택방법은명시적트랜잭션제어문장을유지하는것입니다. 의외로, 이것은다음의세가지이유로인해서가장어려운방법입니다. 각 Commit 전에 ApplyUpdates에대한호출을추가해야합니다. dbexpress의 provide/resolve 구조가제공하는짧은트랜잭션시간의장점을이용하려면모든 StartTransaction에대한호출의위치를변경해야합니다. TTransactionDesc 파라미터를전달하기위해서모든 StartTransaction, Commit 및 Rollback에대한호출을변경해야합니다. 보시다시피명시적트랜잭션을유지하는것보다제거하는것이더간단합니다. 이세단계를자세히검토하겠습니다. 트랜잭션을시작하고 Commit에대한각호출을하기전에트랜잭션에참여하는각 ClientDataSet의 ApplyUpdates 메소드를호출해서 ClientDataSet 변경로그에있는변경사항들이데이터베이스에적용되도록해야합니다. ApplyUpdates를호출하기전에는데이터베이스가변경되지않으므로변경사항을적용할것이없습니다. BDE 클라이언트 / 서버애플리케이션의경우트랜잭션제어프로세스는다음과같습니다. 1. 트랜잭션을시작합니다. 2. 사용자가데이터를편집하도록합니다. 3. 트랜잭션을적용하거나취소합니다. 이모델에서트랜잭션은사용자가데이터를편집하는동안계속활성화상태에있습니다. dbexpress provide/resolve 구조의주요장점가운데하나가짧은트랜잭션시간입니다. 이장점을이용하려면트랜잭션제어프로세스가다음절차를따라야합니다. 그래야사용자가변경사항을만드는동안트랜잭션이활성화되지않습니다. 1. 사용자가 ClientDataset의데이터를편집하도록 합니다. 2. 트랜잭션을시작합니다. 3. ApplyUpdates를호출합니다. 4. 트랜잭션을적용하거나취소합니다.

14 프로그램에서트랜잭션제어프로세스를 dbexpress 모델로변경하려면 StartTransaction에대한각호출을각각에해당하는 Commit에대한호출의바로앞으로이동해야합니다. 그런후, ApplyUpdates에대한호출을 StartTransaction에대한호출과 Commit에대한호출사이에추가합니다. BDE Database 컴포넌트와 dbexpress SQLConnection 컴포넌트는모두 StartTransaction, Commit 및 Rollback 메소드가있습니다. BDE와는달리, dbexpress는데이터베이스가지원하는한도내에서동시에여러트랜잭션이활성화되는것을허용합니다. 다수의트랜잭션을지원하려면 SQLConnection StartTransaction, Commit 및 Rollback 메소드가 TTransactionDesc 타입의파라미터을가져야합니다. TTransactionDesc는다음과같이선언됩니다. TTransactionDesc = packed record TransactionID : LongWord; GlobalID : LongWord; IsolationLevel : TTransIsolationLevel; CustomIsolation : LongWord; end; StartTransaction, Commit 및 Rollback에대한모든호출을변경하여 TTransactionDesc 변수를파라미터로전달하도록합니다. 모든 DataSet 컴포넌트바꾸기 데이터셋컴포넌트를모두바꾸는것은변환과정에서가장큰작업입니다. 각 BDE Query 컴포넌트를 SQLQuery 컴포넌트로바꾸어야하고, 각 BDE StoredProc 컴포넌트를 SQLStoredProc 컴포넌트로바꾸어야합니다. BDE 컴포넌트에는 dbexpress 컴포넌트에는없는속성이나이벤트가있기때문에이과정은복잡합니다. 코드에존재하지않는속성에대한참조가있으면모두제거해야합니다. 양방향액세스또는레코드편집기능이필요한각 SQLQuery 및 SQLStoredProc 컴포넌트에대하여 DataSetProvider와 ClientDataSet를추가해야합니다. SQLQuery와 SQLStoredProc에없는이벤트에대한이벤트핸들러를 ClientDataSet의해당이벤트에연결합니다. 기존코드에대한변경을최소화하려면 ClientDataSet 컴포넌트의이름을바꾸려는 Bolrand Database Engine Query 또는 BDE StoredProc 컴포넌트와같이정하는것을고려할수있습니다. 각각의동시트랜잭션에대하여 TTransactionDesc 형식의변수를선언하고 TransactionId를현재활성화되어있는트랜잭션가운데고유한번호로설정해야합니다. GlobalId 필드는오직 Oracle 데이터베이스트랜잭션과함께만사용됩니다. IsolationLevel은 xildirtyread이나 xilreadcommitted, 또는 xilrepeatableread로설정되어야합니다. CustomIsolation 필드는현재사용되지않습니다. BDE은동시에활성화된여러트랜잭션을지원하지않습니다. 그러므로트랜잭션제어문장을포함하는각유닛의 uses 절에있는유닛의인터페이스섹션에서 TTransactionDesc 형식의하나의변수만선언하면됩니다. 애플리케이션의시작코드에서 TransactionId 필드를 one으로설정하고, IsolationLevel를 xilreadcommitted 또는 xilrepeatableread으로설정합니다. 마지막으로, SQLQuery 및 SQLStoredProc 컴포넌트로되돌아가서 Fields Editor를사용하여필드객체를생성합니다. 필드객체를생성한후에는기본키에있는각필드에대하여 pfinkey 프로바이더플래그를 true로설정합니다. 갱신하지않아야할계산필드가있는경우에는 pfinupdate 및 pfinwhere 프로바이더플래그를 false로설정합니다. DataSetProvider와 ClientDataSet를추가할필요가없는경우도있을수있습니다. 예를들어, 콤보박스나목록박스의 Items 속성의필드값가운데하나를추가하기위해서결과세트를첫행부터마지막까지한번읽은쿼리가있다고가정합시다. 이런경우, 레코드를한방향으로만스캔하고읽기전용액세스만을필요로하기때문에 SQLQuery 또는 SQLStoredProc 컴포넌트를직접사용할수있습니다.

15 BDE 애플리케이션에서캐시업데이트를사용하는경우에는 BDE Query 컴포넌트를 SQLQuery 컴포넌트로변환할때 UpdateSQL 컴포넌트를제거합니다. ClientDataSet와 DataSetProvider는같은기능과장점을가지고있으므로 dbexpress에서는캐시업데이트가필요없습니다. 마지막으로, 앞에서설명한바와같이 ClientDataSet의 ApplyUpdates 메소드에대한호출을추가하여트랜잭션제어에대해 ClientDataSet 로컬버퍼의데이터에대한변경사항이데이터베이스에기록되도록할것을잊지말아야합니다. 데이터타입매핑 dbexpress는 BDE에서작업할때에접하지못했던두가지새로운데이터타입을사용합니다. 배정도부동소수점값에적합하지않은모든숫자값은 TFMTBCDField 객체에들어가서애플리케이션으로반환됩니다. TFMTBCDField 객체는값을 32자리최대정밀도의 true BCD 값인 TBCD 타입으로저장합니다. TFMTBCDField의값으로수식을계산하려면 AsVariant 속성을사용하여값을 variant 변수로저장합니다. DbExpress는날짜-시간값을반환하기위해 TSQLTimeStampField 필드객체타입를사용합니다. TSQLTimeStampField는날짜-시간정보를 TSQLTimeStamp 타입의변수에저장합니다. TSQLTimeStamp는연, 월, 일, 시, 분, 초및그이하에대해각각의필드를가진 Delphi 레코드 (C++ 의구조체 ) 입니다. 그이하란 1천분의 1초의단위를말합니다. TSQLTimeStamp는정밀도의손실없이날짜-시간값이저장되도록합니다. TSQLTimeStampField에는날짜-시간값을다른데이터타입으로바꾸기위한 As 속성이있습니다. BatchMove 컴포넌트바꾸기 dbexpress에는 BDE의 BatchMove 컴포넌트에해당하는것이없습니다. 애플리케이션에서 BatchMove 컴포넌트를사용하는경우에는이를코드로바꾸어야합니다. 로컬데이터베이스애플리케이션을 dbexpress 로마이그레이션하기 Paradox 나 dbase 와같은로컬데이터베이스를사용하는 애플리케이션을 dbexpress 로마이그레이션하는경우에는몇 가지추가로처리해야할문제가있습니다. 데이터변환 dbexpress 는 Paradox 나 dbase 테이블을지원하지않으므로 dbexpress 가지원하는 SQL 데이터베이스서버로변경하고 데이터를새로운데이터베이스로옮겨야합니다. 이것을 위해서는다음과같은세가지방법이있습니다. Delphi와 C++Builder에포함되어있는 BDE Data Pump 유틸리티를사용합니다. 써드파티변환유틸리티를사용합니다. 일부 데이터베이스에는데이터임포트또는변환 유틸리티가포함되어있습니다. 또한, 인터넷에서 무료또는저렴한가격에사용할수있는변환 유틸리티를찾을수도있습니다. 데이터변환프로그램을직접작성합니다. 변환한 SQL 데이터베이스가로컬데이터베이스에있는 모든데이터종류를지원하지않을수있습니다. 예를들어, Paradox 에는 Boolean 데이터타입이있지만, 모든 SQL 데이터베이스서버가그런것은아닙니다. 변환유틸리티를 이용하려는경우에는새로운데이터베이스가직접 지원하지않는데이터타입을확인하고변환툴이이러한 타입을어떻게처리하는지결정해야합니다. 대부분의 SQL 데이터베이스서버는 CHAR 와 VARCHAR 데이터타입을모두지원하지만, 로컬데이터베이스는단일 문자열타입을가지고있습니다. 여러분의변환툴이 문자열필드를여러분의데이터베이스서버에있는올바른 데이터타입으로변환하는지확인해야합니다. 데이터타입을변환하려는이유는여러가지가있을수 있습니다. 예를들어, Paradox 테이블은모든실수를배정도 부동소수점형식으로변환하는반면, 대부분의 SQL

16 데이터베이스서버는 NUMERIC이나 DECIMAL과같은고정소수점형식을지원합니다. 부동소수점과는달리, 고정소수점형식은모든소수점이하의수를정확하게표현할수있고, 따라서화폐단위나기타소수점이하의수가중요한데이터를저장하는경우훨씬좋은선택입니다. 여기에서도사용하려는변환툴이이러한종류의변환을처리할수있는지확인해야합니다. 서버보안정확한사용자이름과비밀번호를입력하지않으면 SQL 데이터베이스서버에서데이터베이스를열수없습니다. 애플리케이션의모든사용자가데이터베이스서버에서같은사용자이름과비밀번호를사용하거나, 각사용자가각각의계정을가지도록할수도있습니다. 보안을어떻게처리하든애플리케이션에코드를추가해야합니다. 대부분의로컬데이터베이스에서는승인되지않은접근을방지하기위해서데이터베이스를암호화할수있으나, 데이터베이스서버에서는그렇지않은경우가많습니다. 암호화하지않는대신, 승인되지않은접근으로부터데이터베이스파일을보호하기위해서운영시스템의보안기능에의존합니다. 일반적으로물리적인데이터베이스파일에대한접근이필요한사용자는데이터베이스관리자와데이터베이스서버서비스를사용하는계정뿐입니다. 만일애플리케이션이판매원이들고다니는노트북컴퓨터와같은독립시스템에설치된경우에는필요로하는보안방식을데이터베이스가지원하는지여부를확인해야합니다. 셋구조전형적인로컬데이터베이스애플리케이션은 BDE Table 컴포넌트를사용하여전체테이블을열고살펴볼수있도록합니다. 이방식은 SQL 데이터베이스서버에서는전체테이블을데이터베이스서버로부터네트워크를거쳐각워크스테이션으로가져와야하므로성능이저하될수있습니다. 테이블컴포넌트도메타데이터를가져오면서많은네트워크와서버대역을사용하므로서버에서레코드를셀렉트하고갱신하도록 SQL 문장을구성할수있습니다. 클라이어트 / 서버애플리케이션이올바로디자인되어있다면 ClientDataSet에서메모리에레코드를보유하는것은애플리케이션이서버로부터한번에레코드를조금씩가져오기때문에문제되지않습니다. 그러나, 사용자가큰테이블을볼수있는로컬데이터베이스애플리케이션을변환하는것은전체테이블이 ClientDataSet에의해서메모리에저장되기때문에클라이언트에상당한메모리를소모하게합니다. BDE Table 컴포넌트를사용하는애플리케이션을변환하는경우, 다음과같은세가지방법이있습니다. 1. 각 BDE 컴포넌트를 SQLTable, DataSetProvider 및 ClientDataSet로바꿉니다. 2. 각 BDE 컴포넌트를 SQLQuery, DataSetProvider 및 ClientDataSet로바꾸고, 테이블에서모든열과행을셀렉트합니다. 3. 각 BDE 컴포넌트를 SQLQuery, DataSetProvider 및 ClientDataSet로바꾸고, 애플리케이션을클라이언트 / 서버셋지향으로변환합니다. 첫째방법은 SQLTable 컴포넌트의속성들이 BDE Table 컴포넌트의속성들과가장비슷하므로가장쉽습니다. 이경우테이블이너무크지않다면성능은좋습니다. 이방법의단점은나중에데이터셋의일부또는전부를변환하여더작은셋의레코드를선택하도록하는경우 SQLTable 컴포넌트를 SQLQuery 컴포넌트로바꾸어야하는것입니다. 둘째방법은더나은선택입니다. 행과열을모두선택해야하기는하지만애플리케이션은쿼리에기반을둘수있습니다. 나중에더욱셋지향적인디자인으로바꾸려면데이터액세스컴포넌트에서 SQL 문장을바꾸면됩니다. 셋째방법은코드를많이변경해야합니다. 클라이언트 / 서버환경을위해서디자인된애플리케이션은일반적으로데이터를표시하기전에사용자가선택범위를입력해야합니다. 선택범위는사용자가작업할약간의레코드를가져오도록쿼리의 WHERE 절에서사용됩니다. 일단사용자가한셋의레코드에서작업을끝낸후에는

17 다른셋의선택범위를입력하여다음세트의레코드를가져옵니다. 애플리케이션에서전체테이블을살펴볼수있도록되어있다면사용자가선택범위를입력할수있도록코드와폼을추가해야하고사용자가제공한값을이용하기위해 WHERE 절을변경해야합니다. dbexpress는 BDE 데이터셋컴포넌트의속성, 메소드및이벤트와유사하게디자인된데이터셋컴포넌트들을포함하고있으므로변환하는데드는노력을최소화해줍니다. 따라서, 기존의코드의변경을최소화하면서도더뛰어난기술로옮겨갈수있습니다. 요약 애플리케이션을 BDE 에서 dbexpress 로마이그레이션하면 다음과같은많은이점이있습니다. 더짧은트랜잭션 네트워트트래픽과시스템리소스사용에대한 제어권확대 용량및시스템리소스사용감소 성능향상 더용이한배포 더작아진배포패키지 크로스플랫폼지원 저자소개 Bill Todd는 Phoenix 인근에있는데이터베이스컨설팅및개발회사인 The Database Group, Inc. 의사장입니다. 그는 4권의데이터베이스프로그래밍서적과 90개이상의기사공동저자이며, Team Borland의회원으로서볼랜드인터넷뉴스그룹에기술지원을제공하고있습니다. 그는미국및유럽의 Borland Developer Conferences에서 24개이상의글을발표하였습니다. 빌은전국적으로잘알려진강사로서, 미국과해외에걸쳐 Delphi와 InterBase 프로그래밍을강의하였습니다. 빌의연락처는 Made in Borland Copyright c 2002 Borland Software Corporation. All rights reserved. All Borland brand and product names are trademarks or registered trademarks of Borland Software Corporation in the United States and other countries. All other marks are the property of their respective owners. Corporate Headquarters: 100 Enterprise Way, Scotts Valley, CA Offices in: Australia, Brazil, Canada, China, Czech Republic, France, Germany, Hong Kong, Hungary, India, Ireland, Italy, Japan, Korea, the Netherlands, New Zealand, Russia, Singapore, Spain, Sweden, Taiwan, the United Kingdom, and the United States

PowerPoint Template

PowerPoint Template JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것

More information

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상 Android 용 Brother Image Viewer 설명서 버전 0 KOR 아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상표입니다. Android는

More information

Windows 8에서 BioStar 1 설치하기

Windows 8에서 BioStar 1 설치하기 / 콘텐츠 테이블... PC에 BioStar 1 설치 방법... Microsoft SQL Server 2012 Express 설치하기... Running SQL 2012 Express Studio... DBSetup.exe 설정하기... BioStar 서버와 클라이언트 시작하기... 1 1 2 2 6 7 1/11 BioStar 1, Windows 8 BioStar

More information

DBMS & SQL Server Installation Database Laboratory

DBMS & SQL Server Installation Database Laboratory DBMS & 조교 _ 최윤영 } 데이터베이스연구실 (1314 호 ) } 문의사항은 cyy@hallym.ac.kr } 과제제출은 dbcyy1@gmail.com } 수업공지사항및자료는모두홈페이지에서확인 } dblab.hallym.ac.kr } 홈페이지 ID: 학번 } 홈페이지 PW:s123 2 차례 } } 설치전점검사항 } 설치단계별설명 3 Hallym Univ.

More information

문서 템플릿

문서 템플릿 HDSI 툴분석 [sql injection 기술명세서 ] Sql injection 기술명세서 Ver. 0.01 이문서는 sql injection 기술명세가범위입니다. Copyrights Copyright 2009 by CanvasTeam@SpeeDroot( 장경칩 ) All Rights Reserved. 장경칩의사전승인없이본내용의전부또는일부에대한복사, 전재,

More information

View Licenses and Services (customer)

View Licenses and Services (customer) 빠른 빠른 시작: 시작: 라이선스, 라이선스, 서비스 서비스 및 주문 주문 이력 이력 보기 보기 고객 가이드 Microsoft 비즈니스 센터의 라이선스, 서비스 및 혜택 섹션을 통해 라이선스, 온라인 서비스, 구매 기록 (주문 기록)을 볼 수 있습니다. 시작하려면, 비즈니스 센터에 로그인하여 상단 메뉴에서 재고를 선택한 후 내 재고 관리를 선택하십시오. 목차

More information

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,

More information

Windows Server 2012

Windows Server  2012 Windows Server 2012 Shared Nothing Live Migration Shared Nothing Live Migration 은 SMB Live Migration 방식과다른점은 VM 데이터파일의위치입니다. Shared Nothing Live Migration 방식은 Hyper-V 호스트의로컬디스크에 VM 데이터파일이위치합니다. 반면에, SMB

More information

±×¸°¸®Æ÷Æ® ³»Áö5Â÷

±×¸°¸®Æ÷Æ® ³»Áö5Â÷ 04 Netherlands 1 GREEN REPORT 2010 Vol.10 05 06 GREEN REPORT 2010 Vol.10 07 08 Japan 2 GREEN REPORT 2010 Vol.10 09 10 Hong Kong 3 GREEN REPORT 2010 Vol.10 11 12 Switzerland 4 GREEN REPORT 2010 Vol.10 13

More information

JDBC 소개및설치 Database Laboratory

JDBC 소개및설치 Database Laboratory JDBC 소개및설치 JDBC } What is the JDBC? } JAVA Database Connectivity 의약어 } 자바프로그램안에서 SQL 을실행하기위해데이터베이스를연결해주는응용프로그램인터페이스 } 연결된데이터베이스의종류와상관없이동일한방법으로자바가데이터베이스내에서발생하는트랜잭션을제어할수있도록하는환경을제공 2 JDBC Driver Manager }

More information

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074> SIMATIC S7 Siemens AG 2004. All rights reserved. Date: 22.03.2006 File: PRO1_17E.1 차례... 2 심벌리스트... 3 Ch3 Ex2: 프로젝트생성...... 4 Ch3 Ex3: S7 프로그램삽입... 5 Ch3 Ex4: 표준라이브러리에서블록복사... 6 Ch4 Ex1: 실제구성을 PG 로업로드하고이름변경......

More information

MF Driver Installation Guide

MF Driver Installation Guide Korean MF 드라이버 설치설명서 사용자 소프트웨어 CD-ROM... 드라이버 및 소프트웨어 정보...1 지원되는 운영 체제...1 MF 드라이버 및 MF Toolbox 설치... [쉬운 설치]를 사용한 설치...2 [사용자 정의 설치]를 사용한 설치...10 USB 케이블 연결(USB를 이용해 연결하는 경우만)...20 설치 결과 확인...21 온라인

More information

2 노드

2 노드 2019/05/03 17:01 1/5 2 노드 2 노드 소개 노드를사용하여계층적분산모니터링을구축할수있습니다. 각노드는Zabbix 서버자체이며, 각각이놓인위치모니터링을담당합니다 Zabbix는. 분산설정은최대 1000 개의노드를지원합니다. 노드의설정을사용하는장점은다음과같습니다. 일부지역에걸친대규모네트워크에서여러수준의모니터링계층을구축합니다. 계층에서하노드는마스터노드에전송합니다.

More information

쉽게 풀어쓴 C 프로그래밊

쉽게 풀어쓴 C 프로그래밊 Power Java 제 27 장데이터베이스 프로그래밍 이번장에서학습할내용 자바와데이터베이스 데이터베이스의기초 SQL JDBC 를이용한프로그래밍 변경가능한결과집합 자바를통하여데이터베이스를사용하는방법을학습합니다. 자바와데이터베이스 JDBC(Java Database Connectivity) 는자바 API 의하나로서데이터베이스에연결하여서데이터베이스안의데이터에대하여검색하고데이터를변경할수있게한다.

More information

Microsoft PowerPoint - 10Àå.ppt

Microsoft PowerPoint - 10Àå.ppt 10 장. DB 서버구축및운영 DBMS 의개념과용어를익힌다. 간단한 SQL 문법을학습한다. MySQL 서버를설치 / 운영한다. 관련용어 데이터 : 자료 테이블 : 데이터를표형식으로표현 레코드 : 테이블의행 필드또는컬럼 : 테이블의열 필드명 : 각필드의이름 데이터타입 : 각필드에입력할값의형식 학번이름주소연락처 관련용어 DB : 테이블의집합 DBMS : DB 들을관리하는소프트웨어

More information

ThinkVantage Fingerprint Software

ThinkVantage Fingerprint Software ThinkVantage 지문 인식 소프트웨어 First Edition (August 2005) Copyright Lenovo 2005. Portions Copyright International Business Machines Corporation 2005. All rights reserved. U.S. GOVERNMENT USERS RESTRICTED RIGHTS:

More information

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins Project 1-3: Implementing DML Due: 2015/11/11 (Wed), 11:59 PM 이번프로젝트의목표는프로젝트 1-1 및프로젝트 1-2에서구현한프로그램에기능을추가하여간단한 DML을처리할수있도록하는것이다. 구현한프로그램은 3개의 DML 구문 (insert, delete, select) 을처리할수있어야한다. 테이블데이터는파일에저장되어프로그램이종료되어도사라지지않아야한다.

More information

WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역

WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역 WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역시쉽게해결할수있다. 이번화이트페이퍼에서는 Window Function 중순위 RANK, ROW_NUMBER,

More information

Spring Boot/JDBC JdbcTemplate/CRUD 예제

Spring Boot/JDBC JdbcTemplate/CRUD 예제 Spring Boot/JDBC JdbcTemplate/CRUD 예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) Spring Boot, Gradle 과오픈소스인 MariaDB 를이용해서 EMP 테이블을만들고 JdbcTemplate, SimpleJdbcTemplate 을이용하여 CRUD 기능을구현해보자. 마리아 DB 설치는다음 URL 에서확인하자.

More information

IRISCard Anywhere 5

IRISCard Anywhere 5 이 빠른 사용자 가이드는 IRISCard Anywhere 5 및 IRISCard Corporate 5 스캐너의 설치와 시작을 도와 드립니다. 이 스캐너와 함께 제공되는 소프트웨어는: - Cardiris Pro 5 및 Cardiris Corporate 5 for CRM (Windows 용) - Cardiris Pro 4 (Mac OS 용) Cardiris 의

More information

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

vRealize Automation용 VMware Remote Console - VMware

vRealize Automation용 VMware Remote Console - VMware vrealize Automation 용 VMware Remote Console VMware Remote Console 9.0 이문서는새버전으로교체되기전까지나열된각제품버전및모든이후버전을지원합니다. 이문서에대한최신버전을확인하려면 http://www.vmware.com/kr/support/pubs 를참조하십시오. KO-002230-00 vrealize Automation

More information

[Brochure] KOR_TunA

[Brochure] KOR_TunA LG CNS LG CNS APM (TunA) LG CNS APM (TunA) 어플리케이션의 성능 개선을 위한 직관적이고 심플한 APM 솔루션 APM 이란? Application Performance Management 란? 사용자 관점 그리고 비즈니스 관점에서 실제 서비스되고 있는 어플리케이션의 성능 관리 체계입니다. 이를 위해서는 신속한 장애 지점 파악 /

More information

Vol.266 C O N T E N T S M O N T H L Y P U B L I C F I N A N C E F O R U M

Vol.266 C O N T E N T S M O N T H L Y P U B L I C F I N A N C E F O R U M 2018.08Vol.266 C O N T E N T S 02 06 30 48 54 66 80 120 M O N T H L Y P U B L I C F I N A N C E F O R U M 2 2018.8 3 4 2018.8 1) 6 2018.8 2) 7 8 2018.8 3) 9 4) 5) 6) 10 2018.8 7) 8) 9) 10) 11 12 2018.8

More information

ISP and CodeVisionAVR C Compiler.hwp

ISP and CodeVisionAVR C Compiler.hwp USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler http://www.avrmall.com/ November 12, 2007 Copyright (c) 2003-2008 All Rights Reserved. USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler

More information

사용설명서를 읽기 전에 안드로이드(Android)용 아이디스 모바일은 네트워크 연결을 통해 안드로이드 플랫폼 기반의 모바일 기기에서 장치 (DVR, NVR, 네트워크 비디오 서버, 네트워크 카메라) 에 접속하여 원격으로 영상을 감시할 수 있는 프로그램입니다. 장치의 사

사용설명서를 읽기 전에 안드로이드(Android)용 아이디스 모바일은 네트워크 연결을 통해 안드로이드 플랫폼 기반의 모바일 기기에서 장치 (DVR, NVR, 네트워크 비디오 서버, 네트워크 카메라) 에 접속하여 원격으로 영상을 감시할 수 있는 프로그램입니다. 장치의 사 IDIS Mobile Android 사용설명서 Powered by 사용설명서를 읽기 전에 안드로이드(Android)용 아이디스 모바일은 네트워크 연결을 통해 안드로이드 플랫폼 기반의 모바일 기기에서 장치 (DVR, NVR, 네트워크 비디오 서버, 네트워크 카메라) 에 접속하여 원격으로 영상을 감시할 수 있는 프로그램입니다. 장치의 사양 및 버전에 따라 일부

More information

API - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어

API - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어서가장중요한부분이라고도할수있기때문입니다. 1. 새로운메크로생성 새메크로만들기버튺을클릭하여파일을생성합니다. 2. 메크로저장 -

More information

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자 SQL Developer Connect to TimesTen 유니원아이앤씨 DB 팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 2010-07-28 작성자 김학준 최종수정일 2010-07-28 문서번호 20100728_01_khj 재개정이력 일자내용수정인버전

More information

목차 1. 시스템요구사항 암호및힌트설정 ( 윈도우 ) JetFlash Vault 시작하기 ( 윈도우 ) JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault

목차 1. 시스템요구사항 암호및힌트설정 ( 윈도우 ) JetFlash Vault 시작하기 ( 윈도우 ) JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault 사용자매뉴얼 JetFlash Vault 100 ( 버전 1.0) 1 목차 1. 시스템요구사항... 3 2. 암호및힌트설정 ( 윈도우 )... 3 3. JetFlash Vault 시작하기 ( 윈도우 )... 7 4. JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault 찾아보기... 10 JetFlash

More information

13주-14주proc.PDF

13주-14주proc.PDF 12 : Pro*C/C++ 1 2 Embeded SQL 3 PRO *C 31 C/C++ PRO *C NOT! NOT AND && AND OR OR EQUAL == = SQL,,, Embeded SQL SQL 32 Pro*C C SQL Pro*C C, C Pro*C, C C 321, C char : char[n] : n int, short, long : float

More information

사용설명서를 읽기 전에 ios용 아이디스 모바일은 네트워크 연결을 통해 ios 플랫폼 기반의 모바일 기기(iOS 버전 6.0 이상의 ipod Touch, iphone 또는 ipad)에서 장치(DVR, 네트워크 비디오 서버 및 네트워크 카메라)에 접속하여 원격으로 영상을

사용설명서를 읽기 전에 ios용 아이디스 모바일은 네트워크 연결을 통해 ios 플랫폼 기반의 모바일 기기(iOS 버전 6.0 이상의 ipod Touch, iphone 또는 ipad)에서 장치(DVR, 네트워크 비디오 서버 및 네트워크 카메라)에 접속하여 원격으로 영상을 IDIS Mobile ios 사용설명서 Powered by 사용설명서를 읽기 전에 ios용 아이디스 모바일은 네트워크 연결을 통해 ios 플랫폼 기반의 모바일 기기(iOS 버전 6.0 이상의 ipod Touch, iphone 또는 ipad)에서 장치(DVR, 네트워크 비디오 서버 및 네트워크 카메라)에 접속하여 원격으로 영상을 감시할 수 있는 프로그램입니다.

More information

슬라이드 제목 없음

슬라이드 제목 없음 MS SQL Server 마이크로소프트사가윈도우운영체제를기반으로개발한관계 DBMS 모바일장치에서엔터프라이즈데이터시스템에이르는다양한플랫폼에서운영되는통합데이터관리및분석솔루션 2 MS SQL Server 개요 3.1 MS SQL Server 개요 클라이언트-서버모델을기반으로하는관계 DBMS 로서윈도우계열의운영체제에서만동작함 오라클관계 DBMS 보다가격이매우저렴한편이고,

More information

Microsoft Word - src.doc

Microsoft Word - src.doc IPTV 서비스탐색및콘텐츠가이드 RI 시스템운용매뉴얼 목차 1. 서버설정방법... 5 1.1. 서비스탐색서버설정... 5 1.2. 컨텐츠가이드서버설정... 6 2. 서버운용방법... 7 2.1. 서비스탐색서버운용... 7 2.1.1. 서비스가이드서버실행... 7 2.1.2. 서비스가이드정보확인... 8 2.1.3. 서비스가이드정보추가... 9 2.1.4. 서비스가이드정보삭제...

More information

슬라이드 1

슬라이드 1 Tadpole for DB 1. 도구개요 2. 설치및실행 4. 활용예제 1. 도구개요 도구명 소개 Tadpole for DB Tools (sites.google.com/site/tadpolefordb/) 웹기반의데이터베이스를관리하는도구 Database 스키마및데이터관리 라이선스 LGPL (Lesser General Public License) 특징 주요기능

More information

SBR-100S User Manual

SBR-100S User Manual ( 1 / 13 ) SBR-100S 모델에 대한 사용자 펌웨어 업그레이드 방법을 안내해 드립니다. SBR-100S 는 신규 펌웨어가 있을시 FOTA(자동업데이트) 기능을 통하여 자동 업그레이드가 되며, 필요시 사용자가 신규 펌웨어를 다운받아 수동으로 업그레이드 할 수 있습니다. 1. 준비하기 1.1 연결 장치 준비 펌웨어 업그레이드를 위해서는 SBR-100S

More information

경우 1) 80GB( 원본 ) => 2TB( 복사본 ), 원본 80GB 는 MBR 로디스크초기화하고 NTFS 로포맷한경우 복사본 HDD 도 MBR 로디스크초기화되고 80GB 만큼포맷되고나머지영역 (80GB~ 나머지부분 ) 은할당되지않음 으로나온다. A. Window P

경우 1) 80GB( 원본 ) => 2TB( 복사본 ), 원본 80GB 는 MBR 로디스크초기화하고 NTFS 로포맷한경우 복사본 HDD 도 MBR 로디스크초기화되고 80GB 만큼포맷되고나머지영역 (80GB~ 나머지부분 ) 은할당되지않음 으로나온다. A. Window P Duplicator 는기본적으로원본하드디스크를빠르게복사본하드디스크에복사하는기능을하는것입니다.. 복사본 하드디스크가원본하드디스크와똑같게하는것을목적으로하는것이어서저용량에서고용량으로복사시몇 가지문제점이발생할수있습니다. 하드디스크는사용하려면, 디스크초기화를한후에포맷을해야사용가능합니다. Windows PC는 MBR과 GPT 2 개중에 1개로초기화합니다. -Windows

More information

< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10

< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10 (https://www.kisarbl.or.kr) < 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10 Ⅰ. 개요 실시간스팸차단리스트 (RBL) 는메일서버를운영하는누구나손쉽게효과적으로스팸수신을차단하는데이용할수있도록한국인터넷진흥원 (KISA)

More information

윈도우시스템프로그래밍

윈도우시스템프로그래밍 데이터베이스및설계 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2012.05.10. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생

More information

Microsoft PowerPoint - 3장-MS SQL Server.ppt [호환 모드]

Microsoft PowerPoint - 3장-MS SQL Server.ppt [호환 모드] MS SQL Server 마이크로소프트사가윈도우운영체제를기반으로개발한관계 DBMS 모바일장치에서엔터프라이즈데이터시스템에이르는다양한플랫폼에서운영되는통합데이터관리및분석솔루션 2 MS SQL Server 개요 3.1 MS SQL Server 개요 클라이언트-서버모델을기반으로하는관계 DBMS로서윈도우계열의운영체제에서만동작함 오라클관계 DBMS보다가격이매우저렴한편이고,

More information

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아 LG U+ SMS/MMS 통합클라이언트 LG U+ SMS/MMS Client Simple Install Manual LG U+ SMS/MMS 통합클라이언트 - 1 - 간단설치매뉴얼 1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml

More information

- 1 - - 2 - - 3 - - 4 - - 5 - - 6 - - 7 - - 8 - - 9 - - 10 - - 11 - - 12 - - 13 - - 14 - - 15 - - 16 - - 17 - - 18 - - 19 - - 20 - - 21 - - 22 - - 23 - - 24 - - 25 - - 26 - - 27 - - 28 - - 29 - - 30 -

More information

MySQL-.. 1

MySQL-.. 1 MySQL- 기초 1 Jinseog Kim Dongguk University jinseog.kim@gmail.com 2017-08-25 Jinseog Kim Dongguk University jinseog.kim@gmail.com MySQL-기초 1 2017-08-25 1 / 18 SQL의 기초 SQL은 아래의 용도로 구성됨 데이터정의 언어(Data definition

More information

5장 SQL 언어 Part II

5장 SQL 언어 Part II 5 장 SQL 언어 Part II 박창이 서울시립대학교통계학과 박창이 ( 서울시립대학교통계학과 ) 5 장 SQL 언어 Part II 1 / 26 데이터조작문 데이터검색 : SELECT 문데이터추가 : INSERT 문데이터수정 : UPDATE 문데이터삭제 : DELETE 문 박창이 ( 서울시립대학교통계학과 ) 5 장 SQL 언어 Part II 2 / 26 SELECT

More information

RHEV 2.2 인증서 만료 확인 및 갱신

RHEV 2.2 인증서 만료 확인 및 갱신 2018/09/28 03:56 1/2 목차... 1 인증서 확인... 1 인증서 종류와 확인... 4 RHEVM CA... 5 FQDN 개인 인증서... 5 레드햇 인증서 - 코드 서명 인증서... 6 호스트 인증... 7 참고사항... 8 관련링크... 8 AllThatLinux! - http://allthatlinux.com/dokuwiki/ rhev_2.2_

More information

Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터

Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터 Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터를사용자에게전송하게되며 Parsing 단계에서실행계획이생성된다. Bind 변수를사용하는 SQL

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 MySQL - 명령어 1. 데이터베이스관련명령 2. 데이터베이스테이블관련명령 3. SQL 명령의일괄실행 4. 레코드관련명령 5. 데이터베이스백업및복원명령 1. 데이터베이스관련명령 데이터베이스접속명령 데이터베이스접속명령 mysql -u계정 -p비밀번호데이터베이스명 C: > mysql -ukdhong p1234 kdhong_db 데이터베이스생성명령 데이터베이스생성명령

More information

PowerPoint Presentation

PowerPoint Presentation Class - Property Jo, Heeseung 목차 section 1 클래스의일반구조 section 2 클래스선언 section 3 객체의생성 section 4 멤버변수 4-1 객체변수 4-2 클래스변수 4-3 종단 (final) 변수 4-4 멤버변수접근방법 section 5 멤버변수접근한정자 5-1 public 5-2 private 5-3 한정자없음

More information

슬라이드 제목 없음

슬라이드 제목 없음 뷰와시스템카탈로그 관계데이터베이스시스템의뷰 (view) 는다른릴레이션으로부터유도된릴레이션 (derived relation) 으로서 ANSI/SPARC 3단계아키텍처의외부뷰와다름 뷰는관계데이터베이스시스템에서데이터베이스의보안메카니즘으로서, 복잡한질의를간단하게표현하는수단으로서, 데이터독립성을높이기위해서사용됨 시스템카탈로그는시스템내의객체 ( 기본릴레이션, 뷰, 인덱스,

More information

빅데이터분산컴퓨팅-5-수정

빅데이터분산컴퓨팅-5-수정 Apache Hive 빅데이터분산컴퓨팅 박영택 Apache Hive 개요 Apache Hive 는 MapReduce 기반의 High-level abstraction HiveQL은 SQL-like 언어를사용 Hadoop 클러스터에서 MapReduce 잡을생성함 Facebook 에서데이터웨어하우스를위해개발되었음 현재는오픈소스인 Apache 프로젝트 Hive 유저를위한

More information

Main Title

Main Title 2003 5140001 IMD WCY IMD 2003 (, 54 ), Competitiveness Valuation International, Inc. Korea Partner of IMD WCY jeong@cvikorea.net page 1 2003, Jin-Ho Jeong, CVI, Korea Partner of IMD +41-25-618-0251 Fax

More information

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우. 소프트웨어매뉴얼 윈도우드라이버 Rev. 3.03 SLP-TX220 / TX223 SLP-TX420 / TX423 SLP-TX400 / TX403 SLP-DX220 / DX223 SLP-DX420 / DX423 SLP-DL410 / DL413 SLP-T400 / T403 SLP-T400R / T403R SLP-D220 / D223 SLP-D420 / D423

More information

Data Sync Manager(DSM) Example Guide Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager

Data Sync Manager(DSM) Example Guide Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager are trademarks or registered trademarks of Ari System, Inc. 1 Table of Contents Chapter1

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean

More information

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

Microsoft Word - windows server 2003 수동설치_non pro support_.doc Windows Server 2003 수동 설치 가이드 INDEX 운영체제 설치 준비과정 1 드라이버를 위한 플로피 디스크 작성 2 드라이버를 위한 USB 메모리 작성 7 운영체제 설치 과정 14 Boot Sequence 변경 14 컨트롤러 드라이버 수동 설치 15 운영체제 설치 17 운영체제 설치 준비 과정 Windows Server 2003 에는 기본적으로

More information

단답형 (26 회기출문제 ) 1. 아래와같은테이블이있을때아래의 SQL 결과에대해서 Oracle, SQL Server 순서로적으시오 TAB1 COL1 CHAR(10) COL2 CHAR(10) INSERT INTO TAB1 VALUES ('1',''); INSERT INT

단답형 (26 회기출문제 ) 1. 아래와같은테이블이있을때아래의 SQL 결과에대해서 Oracle, SQL Server 순서로적으시오 TAB1 COL1 CHAR(10) COL2 CHAR(10) INSERT INTO TAB1 VALUES ('1',''); INSERT INT Study Room Doc.03 : SQLD 예상문제 ( 단답형 ) 네이버 Cafe : 데이터베이스전문가포럼 Study Room http://cafe.naver.com/sqlpd SQLD 26,25,24,21 회기출문제를바탕으로작성 작성자 : 월야루 도움 : 빙수민외카페댓글 2017-11-30 단답형 (26 회기출문제 ) 1. 아래와같은테이블이있을때아래의 SQL

More information

Microsoft PowerPoint - e pptx

Microsoft PowerPoint - e pptx Import/Export Data Using VBA Objectives Referencing Excel Cells in VBA Importing Data from Excel to VBA Using VBA to Modify Contents of Cells 새서브프로시저작성하기 프로시저실행하고결과확인하기 VBA 코드이해하기 Referencing Excel Cells

More information

소프트웨어공학 Tutorial #2: StarUML Eun Man Choi

소프트웨어공학 Tutorial #2: StarUML Eun Man Choi 소프트웨어공학 Tutorial #2: StarUML Eun Man Choi emchoi@dgu.ac.kr Contents l StarUML 개요 l StarUML 소개및특징 l 주요기능 l StarUML 화면소개 l StarUML 설치 l StarUML 다운 & 설치하기 l 연습 l 사용사례다이어그램그리기 l 클래스다이어그램그리기 l 순서다이어그램그리기 2

More information

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 (   ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각 JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.

More information

강의 개요

강의 개요 DDL TABLE 을만들자 웹데이터베이스 TABLE 자료가저장되는공간 문자자료의경우 DB 생성시지정한 Character Set 대로저장 Table 생성시 Table 의구조를결정짓는열속성지정 열 (Clumn, Attribute) 은이름과자료형을갖는다. 자료형 : http://dev.mysql.cm/dc/refman/5.1/en/data-types.html TABLE

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 6 강. 함수와배열, 포인터, 참조목차 함수와포인터 주소값의매개변수전달 주소의반환 함수와배열 배열의매개변수전달 함수와참조 참조에의한매개변수전달 참조의반환 프로그래밍연습 1 /15 6 강. 함수와배열, 포인터, 참조함수와포인터 C++ 매개변수전달방법 값에의한전달 : 변수값,

More information

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - chap06-2pointer.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.

More information

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE ALTIBASE HDB 6.3.1.10.1 Patch Notes 목차 BUG-45710 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG-45730 ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG-45760 ROLLUP/CUBE 절을포함하는질의는 SUBQUERY REMOVAL 변환을수행하지않도록수정합니다....

More information

arcplan Enterprise 6 Charting Facelifts

arcplan Enterprise 6 Charting Facelifts SQL Server Analysis Services Tip 잘레시아 Copyright c 2010 Zalesia Co., Ltd. Agenda I II SSAS Non-Aggregatable 측정값처리 Copyright c 2010 Zalesia Co., Ltd. 2 Copyright c 2010 Zalesia Co., Ltd. 3 STEP1: Sales 큐브를위해데이터를미리준비한다.

More information

User Guide

User Guide HP ThinUpdate 관리자 설명서 Copyright 2016 HP Development Company, L.P. Windows는 미국 및/또는 기타 국가에서 Microsoft Corporation의 등록 상표 또는 상표입 니다. 기밀 컴퓨터 소프트웨어. 소유, 사용 또는 복사 에 필요한 유효한 사용권을 HP로부터 취득했 습니다. FAR 12.211 및

More information

歯sql_tuning2

歯sql_tuning2 SQL Tuning (2) SQL SQL SQL Tuning ROW(1) ROW(2) ROW(n) update ROW(2) at time 1 & Uncommitted update ROW(2) at time 2 SQLDBA> @ UTLLOCKT WAITING_SESSION TYPE MODE_REQUESTED MODE_HELD LOCK_ID1

More information

한국어교재_중급1-앞-인쇄용.indd

한국어교재_중급1-앞-인쇄용.indd 발 간 등 록 번 호 이민자를 위한 한국어와 한국문화 한국어와 한국문 화 이민자를 위한 이민자를 위한 한국어와 한국문화 중급 1 중급 1 본 교재는 사회통합프로그램 한국어 과정 전용교재입니다. 11-1270000-000624-01 M E S S A G E P R O L O G U E C O N T E N T S 02 03 04 08 10 lesson 13

More information

Microsoft PowerPoint Python-DB

Microsoft PowerPoint Python-DB 순천향대학교컴퓨터공학과이상정 순천향대학교컴퓨터공학과 1 학습내용 데이터베이스 SQLite 데이터베이스 파이썬과데이터베이스연결 순천향대학교컴퓨터공학과 2 데이터베이스 (Database) 소개 데이터베이스 DBMS (DataBase Management System) 이라고도함 대용량의데이터를매우효율적으로처리하고저장하는기술 SQLite, 오라클, MySQL 등이있음

More information

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL 다양핚예제로쉽게배우는 오라클 SQL 과 PL/SQL 서진수저 10 장 view 를배웁니다 1 - View 란가상의테이블이다! 2 1. 단순 View (Simple View) SCOTT>CONN / AS SYSDBA; SYS>GRANT CREATE VIEW TO scott ; CREATE [OR REPLACE] [ FORCE NOFORCE] VIEW view

More information

BY-FDP-4-70.hwp

BY-FDP-4-70.hwp RS-232, RS485 FND Display Module BY-FDP-4-70-XX (Rev 1.0) - 1 - 1. 개요. 본 Display Module은 RS-232, RS-485 겸용입니다. Power : DC24V, DC12V( 주문사양). Max Current : 0.6A 숫자크기 : 58mm(FND Size : 70x47mm 4 개) RS-232,

More information

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4 ALTIBASE HDB 6.5.1.5.10 Patch Notes 목차 BUG-46183 DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG-46249 [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4 BUG-46266 [sm]

More information

설치 순서 Windows 98 SE/Me/2000/XP 1 PC를 켜고 Windows를 시작합니다. 아직 컴퓨터에 프린터를 연결하지 마십시오. 2 PC에 P-S100 CD-ROM(프 린터 드라이버)을 삽입합니다. 3 설치 프로그램을 시작합니다. q CD-ROM의 PS1

설치 순서 Windows 98 SE/Me/2000/XP 1 PC를 켜고 Windows를 시작합니다. 아직 컴퓨터에 프린터를 연결하지 마십시오. 2 PC에 P-S100 CD-ROM(프 린터 드라이버)을 삽입합니다. 3 설치 프로그램을 시작합니다. q CD-ROM의 PS1 디지털 사진 프린터 P-S100 프린터 드라이버 설치 가이드 사용하는 컴퓨터에 따라 제공된 프린터 드라이버를 설치합니다. 설치 절차 에 대한 자세한 내용은 CD-ROM의 Readme 파일을 참조하십시오. 작동 환경 Windows 호환 모델: IBM PC/AT 및 호환품 운영 체제: Windows 98 SE/Me/2000/XP (Windows 98 SE/Me/2000/XP

More information

. 스레드 (Thread) 란? 스레드를설명하기전에이글에서언급되는용어들에대하여알아보도록하겠습니다. - 응용프로그램 ( Application ) 사용자에게특정서비스를제공할목적으로구현된응용프로그램을말합니다. - 컴포넌트 ( component ) 어플리케이션을구성하는기능별요

. 스레드 (Thread) 란? 스레드를설명하기전에이글에서언급되는용어들에대하여알아보도록하겠습니다. - 응용프로그램 ( Application ) 사용자에게특정서비스를제공할목적으로구현된응용프로그램을말합니다. - 컴포넌트 ( component ) 어플리케이션을구성하는기능별요 . 스레드 (Thread) 란? 스레드를설명하기전에이글에서언급되는용어들에대하여알아보도록하겠습니다. - 응용프로그램 ( Application ) 사용자에게특정서비스를제공할목적으로구현된응용프로그램을말합니다. - 컴포넌트 ( component ) 어플리케이션을구성하는기능별요소로써안드로이드시스템에서는 Activities, Services, Content Providers,

More information

Microsoft Word - Armjtag_문서1.doc

Microsoft Word - Armjtag_문서1.doc ARM JTAG (wiggler 호환 ) 사용방법 ( IAR EWARM 에서 ARM-JTAG 로 Debugging 하기 ) Test Board : AT91SAM7S256 IAR EWARM : Kickstart for ARM ARM-JTAG : ver 1.0 ( 씨링크테크 ) 1. IAR EWARM (Kickstart for ARM) 설치 2. Macraigor

More information

<C1A62038B0AD20B0ADC0C7B3EBC6AE2E687770>

<C1A62038B0AD20B0ADC0C7B3EBC6AE2E687770> 제 8강 SQL: 관계데이터베이스언어 강의목표 관계데이타베이스언어로서상용 DBMS에서가장널리사용되는 SQL의동작원리에관하여학습하고, 이를이용하여다양한질의문을작성하는방법을습득한다 기대효과 SQL의데이터정의기능을이해한다 SQL의데이터조작기능중질의기능을이해한다 SQL의데이터조작기능중데이터갱신기능을이해한다 SQL의데이터조작기능중뷰및인덱스관련기능을이해한다 SQL 의개요

More information

Endpoint Protector - Active Directory Deployment Guide

Endpoint Protector - Active Directory Deployment Guide Version 1.0.0.1 Active Directory 배포가이드 I Endpoint Protector Active Directory Deployment Guide 목차 1. 소개...1 2. WMI 필터생성... 2 3. EPP 배포 GPO 생성... 9 4. 각각의 GPO 에해당하는 WMI 연결... 12 5.OU 에 GPO 연결... 14 6. 중요공지사항

More information

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호 제이쿼리 () 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호 CSS와마찬가지로, 문서에존재하는여러엘리먼트를접근할수있다. 엘리먼트접근방법 $( 엘리먼트 ) : 일반적인접근방법

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소

More information

chap 5: Trees

chap 5: Trees 5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경

More information

Studuino소프트웨어 설치

Studuino소프트웨어 설치 Studuino 프로그래밍환경 Studuino 소프트웨어설치 본자료는 Studuino 프로그래밍환경설치안내서입니다. Studuino 프로그래밍 환경의갱신에따라추가 / 수정될수있습니다. 목차 1. 소개... 1 2. Windows... 2 2.1. 프로그래밍환경설치... 2 2.1.1. 웹설치버전설치방법... 2 2.2. Studuino 프로그래밍환경실행...

More information

ActFax 4.31 Local Privilege Escalation Exploit

ActFax 4.31 Local Privilege Escalation Exploit NSHC 2013. 05. 23 악성코드 분석 보고서 [ Ransomware 악성코드 ] 사용자의 컴퓨터를 강제로 잠그고 돈을 요구하는 형태의 공격이 기승을 부리고 있 습니다. 이러한 형태의 공격에 이용되는 악성코드는 Ransomware로 불리는 악성코 드 입니다. 한번 감염 시 치료절차가 복잡하며, 보고서 작성 시점을 기준으로 지속 적인 피해자가 발생되고

More information

IP 심화 라우팅프로토콜적용시 라우팅테이블에서 이니셜이있는네트워크를설정하는것 : onnected 직접연결된네트워크를의미한다. 그러므로라우팅은 나는이런네트워크와연결되어있다. 를직접연결된라우터들에게알려주는것 1>en 1#conf t 1(config)#router rip 1

IP 심화 라우팅프로토콜적용시 라우팅테이블에서 이니셜이있는네트워크를설정하는것 : onnected 직접연결된네트워크를의미한다. 그러므로라우팅은 나는이런네트워크와연결되어있다. 를직접연결된라우터들에게알려주는것 1>en 1#conf t 1(config)#router rip 1 IP 심화 º 각 P 의게이트웨이는해당네트워크의마지막주소를사용한다. - P1 (210.220.10.1/26) 의게이트웨이 (5의 Fa0/0) : 210.220.10.63 /26 = 255.255.255.192 호스트비트수 : 32-26 = 6 비트 => = 64 그러므로 P1의 IP 210.220.10.1 중서브넷마스크에의거 26비트는변함이없고, 나머지 6비트가호스트비트로변하므로

More information

Security.hwp

Security.hwp Linksys Wireless Router Wireless Security 유무선공유기, 무선 Access Point 용보안설정 한국어사용자설명서 V1.0 Table of Content 1 MAC 필터... 1 STEP 1 - 무선랜카드의 MAC 주소확인하기... 1 STEP 2 - 라우터설정화면에서 MAC 주소등록하기... 1 2 WEP(Wired Equivalent

More information

기획7.hwp

기획7.hwp 2014 사회정책연합 공동학술대회 한국사회의 사회안전망을 점검한다 복지확대기의 조세재정정책방향: 지방재정과의 연계 1) 최 성 은 (한국조세재정연구원) 1. 서론 최근 우리나라는 복지정책에 있어서 상당한 패러다임의 변화를 맞이하며 급격하게 복지확대기로 접어들고 있다. 현 정부의 무상보육, 의료보장성 확대, 기초연금의 도입 등은 그간 저소득층 및 취약계층 위주의

More information

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 2012.11.23 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Document Distribution Copy Number Name(Role, Title) Date

More information

@ p a g e c o n te n tt y p e = " te x t/ h tm l;c h a rs e t= u tf- 8 " fo r (in t i= 0 ; i< = 1 0 ; i+ + ) { o u t.p rin tln (" H e llo W o rld " + i + " < b r/> " ); = re s u lt + re s u lts u m ()

More information

CODESYS 런타임 설치과정

CODESYS 런타임 설치과정 CODESYS 런타임설치과정 CODESYS Control RTE / SoftMotion RTE Setup Web: www.altsoft.kr E-mail: altsoft@altsoft.kr Tel: 02-547-2344 목 차 CODESYS 런타임 - Control RTE, SoftMotion RTE... 2 다운로드및설치과정... 2 CODESYS EtherCAT

More information

Microsoft Word - release note-VRRP_Korean.doc

Microsoft Word - release note-VRRP_Korean.doc VRRP (Virtual Router Redundancy Protocol) 기능추가 Category S/W Release Version Date General 7.01 22 Dec. 2003 Function Description VRRP 는여러대의라우터를그룹으로묶어하나의가상 IP 어드레스를부여해마스터로지정된라우터장애시 VRRP 그룹내의백업라우터가마스터로자동전환되는프로토콜입니다.

More information

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D> 리눅스 오류처리하기 2007. 11. 28 안효창 라이브러리함수의오류번호얻기 errno 변수기능오류번호를저장한다. 기본형 extern int errno; 헤더파일 라이브러리함수호출에실패했을때함수예 정수값을반환하는함수 -1 반환 open 함수 포인터를반환하는함수 NULL 반환 fopen 함수 2 유닉스 / 리눅스 라이브러리함수의오류번호얻기 19-1

More information

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 Eclipse (IDE) JDK Android SDK with ADT IDE: Integrated Development Environment JDK: Java Development Kit (Java SDK) ADT: Android Development Tools 2 JDK 설치 Eclipse

More information

- JPA를사용하는경우의스프링설정파일에다음을기술한다. <bean id="entitymanagerfactory" class="org.springframework.orm.jpa.localentitymanagerfactorybean" p:persistenceunitname=

- JPA를사용하는경우의스프링설정파일에다음을기술한다. <bean id=entitymanagerfactory class=org.springframework.orm.jpa.localentitymanagerfactorybean p:persistenceunitname= JPA 와 Hibernate - 스프링의 JDBC 대신에 JPA를이용한 DB 데이터검색작업 - JPA(Java Persistence API) 는자바의 O/R 매핑에대한표준지침이며, 이지침에따라설계된소프트웨어를 O/R 매핑프레임워크 라고한다. - O/R 매핑 : 객체지향개념인자바와관계개념인 DB 테이블간에상호대응을시켜준다. 즉, 객체지향언어의인스턴스와관계데이터베이스의레코드를상호대응시킨다.

More information

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론 이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론 2. 관련연구 2.1 MQTT 프로토콜 Fig. 1. Topic-based Publish/Subscribe Communication Model. Table 1. Delivery and Guarantee by MQTT QoS Level 2.1 MQTT-SN 프로토콜 Fig. 2. MQTT-SN

More information

[<1107><1169><11AB><1106><116E><11AB>] 2015<1102><1167><11AB> 7<110B><116F><11AF><1112><1169>-<110E><116C><110C><1169><11BC>.pdf

[<1107><1169><11AB><1106><116E><11AB>] 2015<1102><1167><11AB> 7<110B><116F><11AF><1112><1169>-<110E><116C><110C><1169><11BC>.pdf 21 1) 2) 22 2015.7 1981~1984 10 1982 970 1990~1994 18 1990 1,251 1995~1999 57 1996 1,249 2000~2004 41 2001 1,200 2005~2009 58 2005 1,200 2010~2014 60 2010 1,200 3) 4) 5) 6) 7) 8) 9) 23 10) 11) 0.330 0.340

More information

System Recovery 사용자 매뉴얼

System Recovery 사용자 매뉴얼 Samsung OS Recovery Solution 을이용하여간편하게 MagicInfo 의네트워크를설정하고시스템을백업및복원할수있습니다. 시스템시작시리모컨의 - 버튼이나키보드의 F3 키를연속해서누르면복구모드로진입한후 Samsung OS Recovery Solution 이실행됩니다. Samsung OS Recovery Solution 은키보드와리모컨을사용하여조작할수있습니다.

More information

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures 단일연결리스트 (Singly Linked List) 신찬수 연결리스트 (linked list)? tail 서울부산수원용인 null item next 구조체복습 struct name_card { char name[20]; int date; } struct name_card a; // 구조체변수 a 선언 a.name 또는 a.date // 구조체 a의멤버접근 struct

More information

API 매뉴얼

API 매뉴얼 PCI-DIO12 API Programming (Rev 1.0) Windows, Windows2000, Windows NT and Windows XP are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations mentioned

More information

Tablespace On-Offline 테이블스페이스 온라인/오프라인

Tablespace On-Offline 테이블스페이스 온라인/오프라인 2018/11/10 12:06 1/2 Tablespace On-Offline 테이블스페이스온라인 / 오프라인 목차 Tablespace On-Offline 테이블스페이스온라인 / 오프라인... 1 일반테이블스페이스 (TABLESPACE)... 1 일반테이블스페이스생성하기... 1 테이블스페이스조회하기... 1 테이블스페이스에데이터파일 (DATA FILE) 추가

More information

Microsoft PowerPoint - chap01-C언어개요.pptx

Microsoft PowerPoint - chap01-C언어개요.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 프로그래밍의 기본 개념을

More information

CH04) 쿼리 (Query) 데이터베이스일반 1- 쿼리 (Query) 1) 쿼리의개념 테이블의데이터에서사용자가원하는조건에의해필드를추출하거나레코드를추출할수있는개체로즉, 여러가지방법으로데이터를보고, 변경하고, 분석할수있음 쿼리를폼, 보고서, 데이터액세스페이지등의레코드원본

CH04) 쿼리 (Query) 데이터베이스일반 1- 쿼리 (Query) 1) 쿼리의개념 테이블의데이터에서사용자가원하는조건에의해필드를추출하거나레코드를추출할수있는개체로즉, 여러가지방법으로데이터를보고, 변경하고, 분석할수있음 쿼리를폼, 보고서, 데이터액세스페이지등의레코드원본 1- 쿼리 (Query) 1) 쿼리의개념 테이블의데이터에서사용자가원하는조건에의해필드를추출하거나레코드를추출할수있는개체로즉, 여러가지방법으로데이터를보고, 변경하고, 분석할수있음 쿼리를폼, 보고서, 데이터액세스페이지등의레코드원본으로사용할수도있음 여러개의테이블에서서로유기적인관계를설정하여하나의테이블에서작업하는것처럼작업이가능 2- 쿼리 (Query) 종류 1) 선택쿼리가장일반적인방법형태의쿼리

More information

윈도우시스템프로그래밍

윈도우시스템프로그래밍 데이타베이스 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2013.05.15. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생

More information

Result Cache 동작원리및활용방안 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 ORACLE DBMS 를사용하는시스템에서 QUERY 성능은무엇보다중요한요소중하나이며그 성능과직접적인관련이있는것이 I/O 이다. 많은건수를 ACCESS 해야만원하는결과값을얻을수있는 QUER

Result Cache 동작원리및활용방안 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 ORACLE DBMS 를사용하는시스템에서 QUERY 성능은무엇보다중요한요소중하나이며그 성능과직접적인관련이있는것이 I/O 이다. 많은건수를 ACCESS 해야만원하는결과값을얻을수있는 QUER Result Cache 동작원리및활용방안 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 ORACLE DBMS 를사용하는시스템에서 QUERY 성능은무엇보다중요한요소중하나이며그 성능과직접적인관련이있는것이 I/O 이다. 많은건수를 ACCESS 해야만원하는결과값을얻을수있는 QUERY 을실행하게된다면 BLOCK I/O 가많이발생하게된다. 이런이유로 QUERY 의성능은좋지못할것이다.

More information