用的軟體是vs2010,想在無資料庫支持的單檔案檔案中將文本檔案讀入access資料庫。是不是需要把 .txt 檔案先用代碼轉換成 .mdb 檔案?
之后要在對話框中使用,并實作查詢功能。
uj5u.com熱心網友回復:
txt是txt,mdb是mdb,兩步,先讀取文本檔案到你的記憶體(當然可以一點點讀),讀完了,按你的規則分出每條記錄,然后插入到資料庫uj5u.com熱心網友回復:
不需要,用流讀直存二進制欄位uj5u.com熱心網友回復:
.txt 檔案 很難 轉換成 .mdb 檔案,除非是 上面所說的 程式按 記錄、欄位逐一插入.txt 倒容易轉為 .csv
uj5u.com熱心網友回復:
現在會創建 .mdb 的資料庫檔案了。也插入了一組資料。可是從文本檔案中讀取的內容是放在 CString 型別的變數中了。 我暫時還沒有搜到用 db.Execute(_T("insert into Login (Account,Password) values ('fuyanzhi','yulin')")); 類似的方法插入 CString 型別的字串。代碼如下:
CDaoDatabase db;
CDaoRecordset RecSet(&db);
CString sPath;
GetModuleFileName(NULL,sPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);
sPath.ReleaseBuffer();
int nPos;
nPos=sPath.ReverseFind('\\');//回傳此CString物件中與要求的字符匹配的最后一個字符的索引
sPath=sPath.Left(nPos);
CString lpszFile = sPath + "\\TestDb.mdb";
db.Create(lpszFile);
CString SqlCmd = _T("CREATE TABLE Login(Account VARCHAR(10),Password VARCHAR(10));");
db.Execute(SqlCmd);//創建第一張表 createfield createindex
CString a,b;
a.Format(_T("asdfs"));
b.Format(_T("lin"));
db.Execute(_T("insert into Login (Account,Password) values ('fuyanzhi','yulin')")); //正常插入
db.Execute(_T("insert into Login (Account,Password) values ('%s','%s')a,b")); //執行時報錯且不能插入
uj5u.com熱心網友回復:
把文本檔案轉換為csv檔案或者用特殊符號隔開 然后一行一行的插入到mdb檔案中uj5u.com熱心網友回復:
假如該文本檔案是典型的CSV格式,那么就用程式打開Acces資料庫,執行以下SQL:SELECT * INTO [Table1] FROM [TEXT;FMT=CSV;DELIMITED;HDR=YES;DATABASE=E:\Temp\].[test.csv];
uj5u.com熱心網友回復:
問題已經解決了,謝謝大家。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/100373.html
標籤:數據庫相關
