문제점5 Articles

  1. 2007/01/09 MySQL OleDb 접속후 한글 Insert 문제점.
  2. 2006/11/27 Dekker Algorithm 4
  3. 2006/11/27 Dekker Algorithm 3
  4. 2006/11/27 Dekker Algorithm 2
  5. 2006/11/27 Dekker Algorithm 1

MySql OleDb 를 사용하여 데이터 베이스에 데이터를 넣는 간단한 프로그램을 작성하였다.

using System;
using System.Data;
using System.Data.OleDb;
public class App
{
public static void Main()
{
string conStr = "Provider=MySQLProv;Data Source=csharp;" +
     "Location=localhost;User Id=root;Password=apmsetup";
string insert = "Insert into Address values(1,'김병수','서울')";
OleDbConnection conn = new OleDbConnection(conStr);
conn.Open();
OleDbCommand insertComm = new OleDbCommand(insert,conn);
insertComm.ExecuteNonQuery();
conn.Close();
}
}



위와 같은 프로그램을 작성 하고, 컴파일을 하였다. 아무 에러 없이 컴파일이 되었고 실행을 시켜 보니 다음과 같은 에러가 발생 했다.

처리되지 않은 예외: System.Data.OleDb.OleDbException: 오류 메시지 없이 'MySQLPro
v'이(가) 실패했습니다(결과 코드: E_FAIL(0x80004005)).
  위치: System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBP
ARAMS dbParams, Object& executeResult)
  위치: System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult
)
  위치: System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior,
Object& executeResult)
  위치: System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior be
havior, String method)
  위치: System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
  위치: App.Main()



일단 에러가 처리 되어서 무슨 에러인지 위의 메세지를 봤을때 잘몰르겠다. ^^;; 심각히 고민해 보다가 쿼리문에 잘못이 있나 하여서 한번 쿼리 문을 직접 sql문에다 실행을 시켜 보았는데 이게 왠걸 입력이 잘된다....

그렇다면 무슨 문제가 있는것이라는 얘기인데 이리 저리 궁리해 보다가 문제점을 찾았다. 소스를 아래와 같이 수정 하였다.

using System;
using System.Data;
using System.Data.OleDb;
public class App
{
public static void Main()
{
 string conStr = "Provider=MySQLProv;Data Source=csharp;" +
     "Location=localhost;User Id=root;Password=apmsetup";
 string insert = "Insert into Address values(1,'KimByoungSoo','Seoul')";
 OleDbConnection conn = new OleDbConnection(conStr);
 conn.Open();
 OleDbCommand insertComm = new OleDbCommand(insert,conn);
 insertComm.ExecuteNonQuery();
 conn.Close();
}
}



위와 같이 입력을 하고 실행을 시켜 보니 아무런 예외 처리가 나오지 않았고 sql을 검색 해보니 잘 들어가 있었다.

mysql> select * from address;
+------+--------------+--------+
| id      | name              | addr   |
+------+--------------+--------+
|    1    | 김삿갓             | 서울시 |
| NULL | NULL              | NULL   |
| NULL | NULL              | NULL   |
| NULL | NULL              | NULL   |
|    1    | 1                    | 1      |
| NULL | NULL              | NULL   |
|    1    | KimByoungSoo | Seoul  |
|    1    | KimByoungSoo | Seoul  |
+------+--------------+--------+
8 rows in set (0.00 sec)



그렇다면 문제점은 한글전송시 문제가 발생한다는 것이다. 음.. 이것을 해결할 방법은..... 찾아 봐야 겠다.

C# 2006/11/27 08:32

Dekker Algorithm 4

데커 알고리즘 4번째 문제로 이 알고리즘에 문제는 일정치 않은 딜레이 함수로 CPU가 쉬게 되고 일정치는 않지만 CPU가 쉴수 있는 문제가 생긴다.

볼래요

C# 2006/11/27 08:29

Dekker Algorithm 3

무한 루프가 걸리게 되는 데커 알고리즘 3이다.

for C#

C# 2006/11/27 08:28

Dekker Algorithm 2

동시에 무한 반복이 걸리는 데커 알고리즘 2번째 것이다.

forC#

C# 2006/11/27 08:26

Dekker Algorithm 1

락스텝이 걸리는 데커 알고리즘 1
락스텝 = 1개의 프로세서가 실행되면 다른 1개의 프로세서도 반드시 실행되어야 된다. 번갈아 가면서

forC#


div>