ado2.7 에서 update 하려면 어떻게 하죠 ?
글쓴이: Together / 작성시간: 금, 2003/05/23 - 4:59오전
안녕 하세요.
ado.net 에서 DataReader 를 사용하면
forward-only 이어서 MoveNext, MovePrev 이런 식으로
사용하려면 DataBase File 에 있는 Data를 모두 한번에
DataSet 으로 읽어 들여야 할것같고 그렇게 하면 플그램 시작할때
마다 너무 많은 데이타를 읽어 들여야 할것같아서 연결지향 Api로
플밍 하려는 데요, ADO.NET 에는 연결 지향적
api는 없는것 같아서 csharp 언어로 ado2.7 을
이용 하려는합니다. 아래 코드로 실행하면 connection 은
되는데 업데이트가 안되면서 아래와 같은 에러가 납니다
===
처리되지 않은 'System.Runtime.InteropServices.COMException'
형식의 예외가 Test.exe에서 발생했습니다.
추가 정보: 요청한 이름 또는 서수에 해당하는 컬렉션에서 항목을 찾을 수 없습니다.
===
제가 어디서 잘못해서 이런 에러가 나는걸가요?
지적 해주시면 감사 하겠습니다.
msdn 에서도 ado2.7 용 csharp 예제는 찾을수가 없네요.
좋은 하루 되세요^^
string str = "Provider=Microsoft.JET.OLEDB.4.0;" + @"data source = test.mdb"; ADODB.Connection conn = new ADODB.ConnectionClass(); conn.Open(str, null, null,0); ADODB.Recordset rec = new ADODB.RecordsetClass(); rec.Open("Table", conn, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic, (int)ADODB.CommandTypeEnum.adCmdTable); rec.AddNew(null,null); rec.Fields["ID"].Value = 1; rec.Fields["Name"].Value = "test"; rec.Update(null,null); rec.Close(); conn.Close();
Forums:
해결 했슴다 ^^
해결 했슴다 ^^
rec.AddNew(null,null);
rec.Fields["ID"].Value = 1;
rec.Fields["Name"].Value = "test";
rec.Update(null,null);
위의 코드에서
null 부분을 Type.Missing 로 아래 처럼 바꿔 주니
실해이 잘 되내요.
Type.Missing 이 다른 언어의
default parameter 에 해당하는거
같네요.
rec.AddNew(Type.Missingl,Type.Missing);
rec.Fields["ID"].Value = 1;
rec.Fields["Name"].Value = "test";
rec.Update(Type.Missingl,Type.Missing);
즐거은 하루 되세요 ^^
- 험한 세계에서 자주국방 없는 경제력은 경비없는 은행이다. -
레코드셋이 제공하는 여러 기능은..
레코드 셋에서 제공하는 기능들을 구현하기 위해서는
많은 오버헤드가 발생합니다.
특히나 커서란 것을 선언하게 되는데
이것은 리소스를 많이 사용하게 되죠.
(static, keyset, dynaset, forward only등의 커서 타입들이
존재하는 각각의 차이를 이해하고 내 작업에 많는 녀석을
사용하는 요령아 필요합니다. )
..
정말 성능을 생각 하신다면 쿼리로 update문을 작성해서
실행하는 것이 현명하다고 생각합니다.
울랄라~ 호기심 천국~!!
http://www.ezdoum.com
댓글 달기