アクセス用クラスを利用した登録画面の作成。
DB登録画面をアクセス専用のクラスを利用する形で作成しているのですが、
eclipseのJunitテストを行うとエラーが出てしまいます。
(欲しい値は取れているのですが、その直後に表記されるエラーの原因がよく分かりません。)
↓エラーはこのような内容です。↓
org.postgresql.util.PSQLException: ERROR: 列"id"は型integerですが、式は型character varyingでした
Hint: 式を書き換えるかキャストしなければなりません
以下はソースの一部を抜粋です。
//DBアクセス用クラス。
public final class DataBaseAccess {
・・・・
public void setMultiType(int index, Object value) throws SQLException {
statement.setObject(index, value);}
public void setMultiType(int index, boolean value) throws SQLException {
statement.setBoolean(index, value);}
public void setMultiType(int index, byte value) throws SQLException {
statement.setByte(index, value);}
public void setMultiType(int index, short value) throws SQLException {
statement.setShort(index, value);}
public void setMultiType(int index, int value) throws SQLException {
statement.setInt(index, value);}
public void setMultiType(int index, long param) throws SQLException {
statement.setLong(index, param);}
public void setMultiType(int index, float value) throws SQLException {
statement.setFloat(index, value);}
public void setMultiType(int index, double value) throws SQLException {
statement.setDouble(index, value);}
public ResultSet select() throws SQLException {
return statement.executeQuery();}
public void update() throws SQLException {
statement.executeUpdate();}
・・・・
//登録クラス
public class CustomerEntry{
public void entry(CustomerBean customerBean) {
DataBaseAccess db = new DataBaseAccess();
try {/** DB接続。 */
db.open();
String SQL = "INSERT INTO TB_CUSTOMER VALUES ( ? , ? , ? , ?);";
db.setSql(SQL);
for (int i = 0; i < 11; i++)
{/** ?に値をセット */
db.setMultiType(1, "int id");
db.setMultiType(2, "String userid");
db.setMultiType(3, "String name");
・
・
・
db.setMultiType(11, "String tel");
db.update();
}
db.close();
}
}
}
長文で申し訳ありませんが、ご教授お願いいたします。
補足
ありがとうございます。 お手数お掛けします。 VC++は始めたばかりでよくわからない部分もあるのですみません。 因みにVC++では new 使ってインスタンスを作成したことがないのですが、 ポインタを使用するときには必要なのでしょうか? -------------------- : : : myObj objMy; CMapStringToOb objMap; CMapStringToOb* objMap = new CMapStringToOb; -> こんな感じでしょうか? m_combo.GetWindowText(combo); m_edit.GetWindowText(edit); for(i = 0; i < 1 ; i++){ objMy.setIpAdd(edit); objMy.setNetAdd(combo); objMap.SetAt("A", objMy); } : : : : 上記でもエラーが出てしまうのですが・・・・ 素人で大変申し訳ありません。 * CMapStringToObに変更いたしました。