BLOG main image

같은생각
From... Las

Home | Local log | Tag | Google RSS | Google analytics | Trace watch | Guestbook  
     - 잘 지내나요?
    List  

'dao에서 ADO로'에 해당되는 글 1건

  1. 2008/07/17 dao에서 ADO로

dao에서 ADO로

dao에서 ADO로
Access 데이터를 SQL Server로 이전하는 경우 Access 2000에서는 두 가지 방법을 선택할 수 있고 그 이전 버전에서는 오직 한 가지만을 선택할 수 있다. 이전 버전의 Access에서는 SQL Server의 테이블을 ODBC를 통해서 Access 데이터베이스로 연결해야 한다. Access 2000에서는 ODBC를 사용하여 테이블을 링크하거나 OLE-DB를 사용하여 새로운 Access Project File(.adp)의 기능을 사용할 수도 있다. ODBC를 통한 링크를 사용한다면 Access-VBA 코드는 dao로 계속 남아 있으면서 새롭게 ODBC로 링크된 테이블에 맞도록 변경되어야 한다. Access Project File을 사용한다면 dao 코드는 ADO로 수정되어야 한다.

dao Access 코드를 SQL Server의 링크된 테이블에 맞도록 변경하기

링크된 테이블을 구현하기 위해서는 성능상의 문제 때문에 필요한 것 외에는 그다지 많은 변경 작업이 요구되지 않는다(이것은 다음에 다루기로 한다).

다음의 표에는 SQL Server의 링크된 테이블에서는 작동하지 않기 때문에 수정해야 하는 몇 가지 Access 구문이 나와 있다.

Access (변경할 구문)

SQL Server

DbOpenTable

dbOpenDynaset, dbOpenDynamic ou dbOpenSnapshot

Seek, 메쏘드

OpenRecordset 메쏘드에서 WHERE 조건과 함께 SELECT 쿼리 사용

Updatable, 속성

SQL Server와 Access테이블에서 서로 다른 의미를 가진다. 데이터를 수정하기 위해서 SQL Server가 프라이머리 키(primary key)나 유니크 인덱스(unique index)를 가지고 있는지를 확인한다.



Access의 dao 코드를 ADO로 변경하기

dao와 ADO의 객체 모델은 전혀 다르기 때문에 서로 호환되지 않는다.

daoObjModel.gif" width=170>

<그림 1> dao 객체 모델




<그림 2> ADO 객체 모델


다음의 표는 dao와 ADO에서 서로 대응되는 객체와 콜렉션(collection)을 보여주고 있다

dao (Jet 엔진)

ADO

DBEngine

N/A

Errors

Errors

Workspaces

N/A

Databases

Connections

Users

N/A

Groups

N/A

Containers

N/A

QueryDefs

Commands

Recordsets

Recordsets

Relation

N/A

TableDefs

N/A

Fields

Fields

Parameters

Parameters

Documents

N/A



데이터베이스와 커넥션(Connection)

다음의 표에는 ADO 커넥션으로 변환시키기 위해서 데이터베이스 객체 참조에 대해서 변경할 부분이 나와 있다.

dao (Jet 엔진)

ADO

Dim Db As Database

Dim Cn as New ADODB.Connection

Set Db = DBEngine(0)(0)
Set Db = OpenDatabase(Name, Options, ReadOnly, Connection)

Set cn = Application.CurrentProject.Connection
Cn.Open ConnectionString, IDUser, Password, Options



레코드셋(Recordset)

레코드셋은 테이블, 뷰, 쿼리, 스토어드 프로시저 등에서 데이터를 읽는 기본이 된다. ADO와 dao에서는 객체의 이름이 동일하더라도 실제로는 전혀 다른 객체이다. 다음의 표에는 코드의 차이점이 전부 기술되어 있다. 특히 dao와 ADO간에 레코드셋을 열기 위한 디폴트 값이 서로 다른 점을 주의해야 한다. 이를 기억하지 않는다면 나중에 당황하게 될 것이다.

dao (Jet 엔진)

ADO

Dim Rs as Recordset

Dim Rs as New ADODB.Recordset

Set Rs = Db.OpenRecordset(Source, Type, Option, Locking)

Rs.Open Source, Connection, Type, Locking, Option

소스(Source) :
테이블 이름
쿼리 이름
SQL 쿼리
프로시저 이름과 dbSQLPassThrough 옵션

소스 :
테이블 이름과 adCmdTable 옵션
뷰 이름과 adCmdTable 옵션
SQL 쿼리
스토어드 프로시저 이름

종류(Type) :
dbOpenTable (디폴트)
dbOpenDynaset
dbOpenSnapshot
dbOpenForwardOnly
N/A

종류(Type) :
adCmdTable 옵션
adOpenKeySet
adOpenStatic
adOpenForwardOnly (디폴트)
adOpenDynamic

락킹(Locking) :
dbReadOnly
dbPessimistic (
디폴트)
dbOptimistic
N/A

락킹(Locking) :
adLockReadOnly (디폴트)
adLockPessimistic
adLockOptimistic
adLockBatchOptimistic

옵션(Options) :
dbAppendOnly
dbSQLPassThrough
dbSeeChanges
dbDenyWrite
dbDenyRead
dbForwardOnly
dbReadOnly
dbInconsistent
dbConsistent
dbOpenTable과 다른 타입
dbOpenTable 타입
dbOpenTable 타입
dbSQLPassThrough with Stored Proc.
N/A
N/A
N/A
N/A
N/A

옵션(Options) :
N/A
디폴트로 SQL Pass Through
N/A
Connection 객체를 adModeShareDenyWrite 모드로
Connection 객체를 adModeShareDenyRead 모드로
adForwardOnly 타입
Connection 객체를 adModeRead 모드로
N/A
N/A
adCmdText
adCmdTable
adCmdTableDirect
adCmdStoredProc
adCmdUnknown
adCmdFile
adAsyncExecute
adAsyncFetch
adAsyncFetchNonBlocking

속성(Property):
AbsolutePosition
BOF, EOF
Bookmark
Bookmarkable
DateCreated, DateUpdated
Filter
Index
LastModified
LockEdits
Name
NoMatch
PercentPosition
RecordCount
Restartable
Sort
Transactions
Type
Updatable
ValidationRule
ValidationText

속성(Property):
AbsolutePosition
BOF, EOF
Bookmark
ADO
레코드셋은 항상 북마크 가능(Bookmarkable)
N/A
Filter
Index
N/A
LockType
N/A
EOF
계산(AbsolutePosition/RecordCount)
RecordCount
ADO
레코드셋은 항상 재시작 가능(Restartable)
Sort
Connection
객체의 Transactions 속성
CursorType
Connection
객체의 Updatable 속성
N/A
N/A

메쏘드(Methods) :
AddNew
Cancel
CancelUpdate
Clone
Close
CopyQueryDef
Delete
Edit
FindFirst, FindLast, FindNext, FindPreviou
GetRows
Move
MoveFirst, MoveLast, FindNext, FindPrevious
NextRecordset
OpenRecordset
Requery
Seek
Update

메쏘드(Methods) :
AddNew
Cancel
CancelUpdate
Clone
Set Rs = Nothing
N/A
Delete
connection에서 허락하면 레코드셋 수정 가능
Seek with option (adSeekFirstEQ, adSeekLastEQ...)
N/A
Move
MoveFirst, MoveLast, FindNext, FindPrevious
NextRecordset
Open
Requery, Resync
Seek
Update




Command와 QueryDef

Access에서 QueryDef를 사용하면 쿼리의 재실행과 파라미터의 사용이 가능하다. 이것은 ADO에서는 Command에 대응된다. 여기서는 QueryDefs에서 Commands로 옮기는 방법을 알아 본다.

dao (Jet 엔진)

ADO

Dim Qd As QueryDef

Dim Cm as New ADODB.Command

Set Qd = Db.QueryDefs("MyQuery")

Cm.CommandText = "SQL 쿼리 또는 스토어드 프로시저"

속성(Property):
Connect
DateCreated, DateUpdated
LogMessages
Name
RecordsAffected
Replicable
ReturnsRecord
SQL
Type
Updatable

속성(Property):
ActiveConnection
N/A
N/A
Name
N/A
N/A
CommandType의 값
CommandText
CommandType
Connection 객체의Updatable 속성

메쏘드(Methods) :
Cancel
Close
CreateProperty
Execute
OpenRecordset

메쏘드(Methods) :
Cancel
Set Cm = Nothing
N/A
Execute
레코드셋 객체의 Open 메쏘드

Dim Pa as Parameter

Dim Pa as New ADODB.Parameter

Qd.Parameters(Name) = value

Set Pa = Cm.CreateParameter (Name, Type, Direction)
Pa.Value = value

Ou

Cm.Parameters.Refresh
Cm.Parameters(1).Value = value

속성(Property):
Direction
Name
Type
Value

속성(Property):
Direction
Name
Type
Value



 

[출처] dao에서 ADO로 (howtobank에서 퍼옴) |작성자 물고기

Category : 분류없음   Tag :  
2008/07/17 14:05   By Las 
Trackback : Comment

prev page next page
1 

Recent Entry

Recent Comment

Recent Trackback

Counter

Total : 251294 Today : 23 Yesterday : 44

Tag cloud

..., ......ing, ActiveX 삭제, ADO, ADO 성능 높이기, agp, Aids, Another World, apple cinema, asp, Aya Ueto, A형, Baldurs Gate, bard, BEO Player, Book, Bryan adams, CGV, Chante Moore, clie, compact, Compilation, Convert, DAO, dao에서 ADO로, DarkNamer, datetime, DB restore, DB 복구, db 테이블 정의서, dell 2007WFP, DreamFall: The Longest Journey, dvd, DVD 타이틀, ecotonoha, eve-online, event.keyCode 번호표, Facebook, favicon, favis, Faye Wong, FLASH, Fon, Fon Lafontenna, fon maps, FON 지향성 안테나, footnote, Fun, Game, Gamecube, game_ost, GETDATE, Google, Google analytics, Graphic card, hanami, HDTV 수신카드, heaven, HijackThis, I-RAM, i4R, IceWind Dale, IE ActiveX, IE Plug-in, IETOY, include, irc, ishihara satomi, isNull, Java, JavaScript, jazz, join update, j_drama, j_music, kav, kb917422, Kenny G, keyboard_Fun, k님, Launcher, LightBox2, Linked Server, linux, Lottery Music, M.Friends, Maki Horikita, Matsu Takako, mdb, MDB생성, MDB압축, Microsoft iPod, mp3, mp3 Media Player, MSN Live, MSN Messenger, Mssql, Myminicity, NEC, NeverwinterNights, o-game, ogame, one more time, Open Your Eyes, opencapture, openTTD, PageDefrag, palm, pc_game, pc_game_tip, PC업그레이드, Pda, Petit Launcher, picture, pinball, Pink Floyd, program, ps3, punkbuster, RAID, RDO, Remake, retrievr, Review, Search, settler, settler2, skt 포인트소멸, songlist, sony usm2gj, spread, SqL, Starry Night, sudoku, Symphonic, THE ERASER, The Father, The isley brothers, thecheat, theinquirer, Think, THOM YORKE, Time, tip, Tistory, tracewatch, Twitter, ubuntu, Uchiyama Rina, Ueto Aya, UltraMon, unplugged, us and them, util, ux50, vangard, vb, wallpaper, Web관련, Wii, WOW, xirc, xp install, yui, Yumiko Shaku, z22, Zoo 愛をください, Zune, クロサギ, ソニン, 上戸彩, 優香, 我願意, 王菲, 王靖雯, 白い影, 가상주민등록번호, 강릉, 건슈팅, 검색로봇, 고냥군, 괴물, 구입기, 그해 여름, 그해여름 OST, 기억상실, 기억속의 인물, 김연아, 꿈 속에 살아가다, 난수 발생, 날개셋, 날씨, 내캐릭, 내컴퓨터, 놀자, 다랭이, 다스베이더, 다케우치 유코, 당신은 사랑받기 위해 태어난 사람, 더워, 데이터가져오기, 독백, 동생, 듀얼모니터, 레지스트리 청소, 로또, 로코모션, 마마님, 머리속, 메타정보, 미완료작업물, 밀란쿤데라, 바탕화면 아이콘을 줄이자, 박x무당님, 범프키, 보안카드, 북다트, 블랙잭, 뿌리를찾아서, 사제, 삼돌이, 삼벌식, 삽질의 현장, 생각, 생활의 지혜, 설명, 성격, 세계 AIDS의날, 소닌, 스타더스트, 스티브잡스, 스팸댓글, 시스템, 신동우, 신승훈, 실시간알리미, 싸이월드 플러그인, 안나님, 언락, 업데이트, 연애편차치, 영화를 보다, 오소영, 옥션광고, 와라님, 외장하드, 우에토 아야, 웨군, 웹표준, 유용한 소스, 유카, 윤창군, 음악저작권법, 이동성, 이벤트당첨, 이사, 이승환 9집, 이자람, 인희, 일본연예인, 자바스크립트 코드 작성법, 자식창에서 부모창 함수 사용, 잘지내나요?, 잡담, 저장프로시저, 정규식, 젠장!!!, 족보, 즐거운인생, 지름, 천안전씨, 추억과 이야기들, 카툰, 칼리브레이션, 캡쳐, 컴터 다운, 컴터업, 케로로중사 중에서, 키트님, 태양의노래 OST, 테더스킨, 테터툴즈, 투명한얼음, 트랙백놀이, 트릭, 특성, 파일이름바꾸기, 파코즈, 편한사람, 플러그인, 하고싶어, 한국 지도 서비스, 한글입력기, 함수모음, 향수, 혈액형, 혼자놀기, 후회,