掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
CRecordset で、MDBファイルへ書き込むとき・・・ (ID:54602)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
試してみたところ、「変更または削除に失敗しました」とポップアップが上がってきます。 長〜区なってしまいますが、こちらがソースの抜粋です(変数も、ここで使うののみ記述しています)。 #define MAX_REC2 1024 //文字列時間(yy/mm/dd)をCTimeに格納する関数(動作確認済みです) BOOL CtoTime(char *c_ymd, CTime *ymd); CRec CRec; int m, n, z; FILE *LoadData; char rec; char rec2[MAX_REC2]; 〜fopen、等は省略〜 m = 0; n = 0; z = 0; while(1) { rec = fgetc(LoadData); if(rec == EOF) { break; } //最初の2行は書き込まない if(m < 2) { if(rec == '\n') { m++; } } //3行目から書き込み else { if(rec == ',') { z++; for(; n < MAX_REC2; n++) { rec2[n] = '\0'; } if(z >= 7) { printf("データのフォーマットが異常です①。:%s", argv[i]); getchar(); CRec.Close(); return 1; } else if(z == 1) { CRec.m_Data1 = rec2; } else if(z == 2) { CRec.m_ata2 = rec2; } else if(z == 3) { CRec.m_Data3 = rec2; } else if(z == 4) { CRec.m_Data4 = rec2; } else if(z == 5) { CRec.m_Data5 = rec2; } else if(z == 6) { CRec.m_Data6 = rec2; } n = 0; } else if(rec == '\n') { if(z != 6) { printf("データのフォーマットが異常です②→%d。:%s", z, argv[i]); getchar(); CRec.Close(); return 1; } else { m++; for(; n < MAX_REC2; n++) { rec2[n] = '\0'; } CtoTime(rec2, &CRec.m_Timedata); n = 0; z = 0; try { CRec.Update(); } catch(CDBException *db_exp) { db_exp->ReportError(); } CRec.Requery(); } } else { rec2[n] = rec; n++; } } } 抜けがあったらごめんなさい(^^; やろうとしていることは ☆ある決まった形式のcsvファイルを読み込む ☆最初の2行は飛ばして3行目から一文字ずつ見ていく ○普通の文字列なら文字列変数rec2に追記 ○「,」になったら、該当するAccessの項目に書き込み ○改行がでたら、その行の最後の項目は日付なので、 AccessのDATEの形式に変換して書き込みをして、 Updare、Requeryをして次の行へ・・・ ☆以上をファイルがEOFになるまで繰り返す といった感じです。 Update()の部分で突っかかっているみたいです・・・。 なぜなんでしょう・・・?
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.