データベースに持ち込まれる C++ プログラムに読み込まれたドキュメントの一意の ID が必要です。ID が関連付けられているドキュメントが最初にプログラムを介して実行されるか、単独で実行されるか、または他のドキュメントのスタックの途中で実行されるかに関係なく、ID は同じである必要があります。データベース内のドキュメントの上書きを尊重できるように。
などのドキュメント名のASCII値を使用することを検討しました
従業員仕様ページ.doc 358
しかし、それは同じ値を持っています
Warnings.doc 358 への回答
つまり、プログラムで 2 番目のドキュメントを実行すると、最初のドキュメントの存在が上書きされます。
ID は数値で一意である必要がありますが、データベース自体を相互参照することなく一貫して再生成可能である必要があります (このプログラムはデータベース インポート プログラムとは別に実行されるため)。
私は困惑しているので、誰かがいくつかのアイデアを持っていることを願っています。
編集: MD5 を使用して「Employee Spec Page.doc」と「Answer Warnings.doc」を変換しようとしたところ、次の文字表現が得られました。
警告への回答: 2dcb2503c48f5472bfdbafe28d565a9d
従業員仕様ページ: a9be4c1428c11b406072c0bd3dab2dee
ただし、次に char* を unsigned int に変換すると
char* docID = md5.digestString(pDocument->m_csDocumentName.GetBuffer());
pDocument->m_csDocID.Format("%i",(unsigned int)docID);
私は両方を取得します:
警告への回答: 1634456
従業員仕様ページ: 1634456
ここから md5 クラスを取得しました: http://bobobobo.wordpress.com/2010/10/17/md5-c-implementation/
私は何を間違っていますか?整数にする必要があります。そうしないと、ID をデータベースに保存できません。