Java+Acess+2 INSERTs not working

 
0
 
Java
ava
guest | 14.10.2005, 14:45
Dobruj den!
Izvenite chto pishy translitom, ryskogo/ykr yazuka nety, tolko anglijskij est'.
Y menya voznikla problema - ya delau 2 INSERTA v raznue tablicu Accessovskoj BD. Problema v tom chto - danue zanosyatsya tolko v odny tablicy, hotya rezyltat fynkcuii executeUpdate v syme(dva vuzova) = 2. Toiis vtoroj INSERT vstavlyat danue, no iih v tablice nety.
Mozhet eto gluyk Accessa?

Posmotrite na kod pozalyjsta, mozhet est oshubka???

Spasibo za pomosh'!


db = DataBase.getInstance();
try {
insertAttribute= db.getConnection().prepareStatement("INSERT INTO Attributes VALUES(?,?,?,?)");
insertAddAtributeToClass = db.getConnection().prepareStatement("INSERT INTO ClassAttributes VALUES(?,?)");
} catch (SQLException e) {
System.out.println(db.getConstantByName("classesPrepareStatement"));
e.printStackTrace();
}

public boolean addNewAttribute(int classID,String attrName, String attrDescription, int attrType) {
int attrID = db.getAllAttributesCount() + 1;
int result = 0;
try {
insertAttribute.setInt(1,attrID);
insertAttribute.setString(2,attrName);
insertAttribute.setString(3,attrDescription);
insertAttribute.setInt(4,attrType);
result = db.executeInsertSQL(insertAttribute);
insertAddAtributeToClass.setInt(1,classID);
insertAddAtributeToClass.setInt(2,attrID);
result += db.executeInsertSQL(insertAddAtributeToClass);
}catch (SQLException ex) {
System.out.println(db.getConstantByName("addNewAttributeException") + " classID=" + classID + " attrName=" + attrName);
ex.printStackTrace();
}
System.out.println("Inserted=" + result);
return result!=0;
}

public int executeInsertSQL(PreparedStatement pStatement) {
int result = 0;
try {
result = pStatement.executeUpdate();
pStatement.close();
}
catch (SQLException ex) {
System.out.println(getConstantByName("dataBaseExecuteSQL"));
result = 0;
ex.printStackTrace();
}
return result;
}
Ответы (6)
ava
guest | 14.10.2005, 15:17 #
Esli zdelat eshe odin INSERT danue zapisuvautsya. Chto ne tak???? Kak zdelat "commit" danuh v BD????
ava
batigoal | 14.10.2005, 19:46 #
А коннекции закрываются?

Коммит выполняется как раз на объекте Connection (метод commit()).
ava
guest | 17.10.2005, 10:13 #
Connection ne zakruvaetsya. Zachem ego zakruvat'???? Y menya est' klass DataBase, kogda ya ego sozdau to ya delau Connection k BD. Potom esli mne nado ispolnit SQL, ya delau Connection.createStatement. Statement ya zakruvau. Problema byla v drygom, nado bulo zdelat vse methodu katorue pishyt v BD synchronized. Sejchas vse rabotaest.

Spasibo.

PS: mozhet ya ne pravilno delau raboty z BD? Mozhet est primer??
ava
batigoal | 17.10.2005, 10:36 #
Цитата (DEMO_VERSION @ 17.10.2005, 11:13)
PS: mozhet ya ne pravilno delau raboty z BD? Mozhet est primer??

Да вроде все разумно.. (имхо)
ava
guest | 17.10.2005, 11:04 #
Ya znau chto mnogie sozdaut Pool soedinenij. Y menya tolko odin Connection. Uzerov mozhet but i 10 i 100. Mne etogo hvatit?
I voobshe chto takoe PoolConnection?

Kak Vu organiziryete roboty z BD?
ava
batigoal | 17.10.2005, 12:55 #
Цитата (DEMO_VERSION @ 17.10.2005, 12:04)
I voobshe chto takoe PoolConnection?

Вот здесь я задавал такой же вопрос:
http://forum.vingrad.ru/index.php?showtopic=42933

Одного соединения однозначно недостаточно.
Зарегистрируйтесь или войдите, чтобы написать.
Фирма дня
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Участники
  guest   batigoal
advanced
Отправить