|
안녕하세요, Destinyz입니다^^ 지금도 어제처럼 비가 마구 쏟아지는군요;;
고황일님, 답변 정말 감사드립니다. 그런데.. 제가 질문을 잘못드린것 같군요^^[워낙 비몽사몽이어서;ㅅ ;]
제가 코딩한 그 타이머부분을 보면, 예전 질문했던 것이
////////////////
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
Timer1->Enabled=false;
String ExecutePath=ExtractFilePath(Application->ExeName)+"DB\\";
String DBFileName="FileDB.mdb";
FileDataBase->ADOConnection1->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ExecutePath+DBFileName+";Persist Security Info=False";
FileDataBase->ADOConnection1->Connected=true;
FileDataBase->ADOQuery1->Active=true;
DBFileName="FileDB.mdb";
SpyDataBase->ADOConnection1->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ExecutePath+DBFileName+";Persist Security Info=False";
SpyDataBase->ADOConnection1->Connected=true;
SpyDataBase->ADOQuery1->Active=true;
Form1->Hide();
Form2->Show();
}
////////////////
이거엿는데요... 제가 잘못 코딩한 부분이 있더라구요^^;; 바로
////////////////
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
Timer1->Enabled=false;
String ExecutePath=ExtractFilePath(Application->ExeName)+"DB\\";
String DBFileName="FileDB.mdb";
FileDataBase->ADOConnection1->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ExecutePath+DBFileName+";Persist Security Info=False";
FileDataBase->ADOConnection1->Connected=true;
FileDataBase->ADOQuery1->Active=true;
DBFileName="FileDB.mdb"; // <- 이부분 입니다;; 원래는 DBFileName="SpyDB.mdb"; 인데말이죠^^;;
SpyDataBase->ADOConnection1->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ExecutePath+DBFileName+";Persist Security Info=False";
SpyDataBase->ADOConnection1->Connected=true;
SpyDataBase->ADOQuery1->Active=true;
Form1->Hide();
Form2->Show();
}
////////////////
이 것을 실행시킨 결과, 첨부파일과 같은 오류가 났습니다.
이젠 뭐라고해야할지... 아 정말 데이터베이스가 제 속을 썩이고 있군요!!ㅠㅠ
고황일 님이 쓰신 글 :
: 안녕하세요?... 여기도 비가 많이 내리는 군요.. 여긴 인천.. ^^
:
: Destinyz님의 코드에서 DBFileName이 서로다른 ADOConnection에서 같던데...
: 파일을 DB로 사용하실 경우에 다른 Connection을 할 수 없습니다.
: 그게 문제 인거 같군요. 에러 내용은.. 저는 국문으로 나와서... 쩝.
:
: 첫번째 Connection에서는 에러가 발생하지 않는데
: 두번째 Connection에서는 DB설정 파일 연결이 없다는 에러가 나오네요.
: 다른 DB파일을 사용하시던지요 아니면 Connection을 공유하세요
:
: 이런 방법은 어떠실지요...
: void __fastcall TForm1::Timer1Timer(TObject *Sender)
: {
: Timer1->Enabled=false;
: String ExecutePath=ExtractFilePath(Application->ExeName)+"DB\\";
: String DBFileName="FileDB.mdb";
: FileDataBase->ADOConnection1->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ExecutePath+DBFileName+";Persist Security Info=False";
: FileDataBase->ADOConnection1->Connected=true;
: FileDataBase->ADOQuery1->Active=true;
: // DBFileName="FileDB.mdb";
: // SpyDataBase->ADOConnection1->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ExecutePath+DBFileName+";Persist Security Info=False";
: // SpyDataBase->ADOConnection1->Connected=true;
:
: /* SpyDataBase가 하나의 폼이 라면.. FileDataBase 폼의 헤더를 Include시키고.. */
: SpyDataBase->ADOQuery1->Connection = FileDataBase->ADOConnection1;
: // ADOConnection은 FileDataBase에 있는 Connection을 이용한다.
: SpyDataBase->ADOQuery1->Active=true;
: Form1->Hide();
: Form2->Show();
: }
:
: 아니면.. 디지인 타임에서 SpyDataBase의 ADOQuery1의 Connection을 FileDataBase->ADOConnection1로
: 지정 해놓으셔도 됩니다.
:
: 그럼..
: Destinyz 님이 쓰신 글 :
: : 안녕하세요, Destinyz입니다^^ 제가 살고 있는 서울에 하늘에 구멍이 뚫린듯 비가 엄청나게 쏟아집니다^^ 이미 피해를 입으셨거나 저지대에 사시는분들, 부디 무사하시고 피해없으시길 바랍니다.
: :
: : 다름이 아니라 또 데이터베이스 ADO에 대해서 질문을 드리고자 합니다^^
: :
: : 저번 질문에서, 고황일 님과 김태정 님께서 좋은 답변 달아주셨는데요, 고황일 님의 답변대로 하는 도중 또 첨부파일과 같은 에러가 났습니다. 권한 문제인것 같기도 하구...
: :
: : 전 맨처음 실행되는 Form1에 타이머에 설정을 했습니다. 아래는 제가 고황일 님의 말씀대로 해본 것 입니다.(김태정 님께서 일러주신대로 한 것도 있습니다(Default Database에서 ".\DB"라고 설정함.)
: :
: : //////////
: : // 1초가 지나면 아래의 소스코드가 실행됩니다.
: :
: : void __fastcall TForm1::Timer1Timer(TObject *Sender)
: : {
: : Timer1->Enabled=false;
: : String ExecutePath=ExtractFilePath(Application->ExeName)+"DB\\";
: : String DBFileName="FileDB.mdb";
: : FileDataBase->ADOConnection1->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ExecutePath+DBFileName+";Persist Security Info=False";
: : FileDataBase->ADOConnection1->Connected=true;
: : FileDataBase->ADOQuery1->Active=true;
: : DBFileName="FileDB.mdb";
: : SpyDataBase->ADOConnection1->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ExecutePath+DBFileName+";Persist Security Info=False";
: : SpyDataBase->ADOConnection1->Connected=true;
: : SpyDataBase->ADOQuery1->Active=true;
: : Form1->Hide();
: : Form2->Show();
: : }
: :
: : /////////
: :
: : 제가 잘 못한것일 수도 있습니다. 제가 잘못한 부분이 있다면 옳게 일러주시옵고, 그 오류창에 대한 말씀도 해주시기바랍니다.
: : 참신하고 좋은 답변 기다리고 있겠습니다. 감사합니다^^
|