델초보입니다.
너무 골머리가 아파서 문의드립니다.
....
....
var CurrentDBName:String;
....
....
db를 동적으로 생성해서 사용하려고
위와같이 CurrentDBName 를 변수로 지정해 줬습니다.
그리고 Form1.FormShow 이벤트에서
CurrentDBName:=ExtractFilePath(Application.ExeName) + 'dat\1.db';
라고 지정도 해쭸지만 아래 소스의 select문에서 "token not found token C"란 에러가 납니다.
그래서 Form1.FormShow 이벤트에서 CurrentDBName:='\1.db'; 라고 지정해주고 C드라이브의 루트에
'1.db'파일을 복사해 주었더니 인식을 합니다.
무엇이 잘못되었는지 어제 새벽부터 게시판을 질답란을 검색해봐도
알수가없읍니다.
제 생각에는 변수에 'c:\프로그램모음\팁관리\dat' 란 스트링이 들어가 있는데
'C' 다음에오는 ':'을 인식을 못해서 그런건 아닌가 생각도 해봅니다.
고수닙들의 답변 부탁드립니다.
procedure query_start();
begin
Form1.DataSource1.dataset := Form1.Query1;
Form1.Query1.DatabaseName := ExtractFilePath(Application.ExeName) + 'dat'; // alias
Form1.DBGrid1.DataSource := Form1.DataSource1;
Form1.DBGrid1.Columns.Add; // 원하는 컬럼수만큼 추가.
Form1.DBGrid1.Columns[0].FieldName := 'title'; // column 명
Form1.DBGrid1.Columns[0].Title.Caption:='제목';
Form1.DBGrid1.Columns[0].Color:=$009C9C4E;
Form1.DBGrid1.Columns[0].Width:=400;
Form1.DBGrid1.Columns.Add; // 원하는 컬럼수만큼 추가.
Form1.DBGrid1.Columns[1].FieldName := 'Mk_date'; // column 명
Form1.DBGrid1.Columns[1].Visible:=false;
Form1.DBGrid1.Columns.Add; // 원하는 컬럼수만큼 추가.
Form1.DBGrid1.Columns[2].FieldName := 'memo'; // column 명
Form1.DBGrid1.Columns[2].Visible:=false;
Form1.DBGrid1.Columns.Add; // 원하는 컬럼수만큼 추가.
Form1.DBGrid1.Columns[3].FieldName := 'gooboon'; // column 명
Form1.DBGrid1.Columns[3].Visible:=false;
with Form1.Query1 do
begin
Close;
SQL.Clear;
sql.add(format('select * from %s', [CurrentDBName] ));
Open;
end;
end;
일단여,
Form1.Query1.DatabaseName의 값에
"1.db"의 실제 경로를 넣어보고
Connected를 True로 변경해 보세여
예를 들여, Form1.Query1.DatabaseName에
"c:\프로그램모음\팁관리\dat\"를 넣고 Connected를
True로 변경해 보세여..
잘 된다면,
ExtractFilePath(Application.ExeName) 이부분에 문제가 있는겁니다..
물론, DatabaseName에 실제경로를 넣고도 잘 사용했었기 때문에
문제가 발생할꺼라고 생각하지 않습니다..
단!!!
Query1가 Open되어져 있지 않았다는 전제하에서 말입니다..
즉, ApplicationExeName의 경로가
님이 원하시는 "'c:\프로그램모음\팁관리\" 값을 Return하지 않기
때문이 아닌지 싶습니다..
즉, 델파이에서 Build시에 생성되는 실행파일이
"c:\프로그램모음\팁관리\"에 생성되지 않고,
다른 곳에 생성되는게 아닌지 의심이 가는군여..
즉, "C:\개발\"과 같이 다른 Directory에 실행파일이 생성되는거이
아닌지 의심이 됩니다..
확인해 보시구여..
제가 사용해 본봐로는 C:\ 이거때문에 Error가 발생했던 적이
없었던 것으로 기억이 납니다..
(실제 db_start()의 시작시점에서는 Query1의 Close가 되는 Coding부분이
없어 보이는군여..)