การแทรก SQLite ล้มเหลวอย่างเงียบ ๆ บน BlackBerry

ฉันกำลังพยายามแทรกข้อมูลบางอย่างลงในตาราง SQLite ที่มีอยู่ ตารางและฐานข้อมูลถูกสร้างขึ้นโดยใช้ API เดียวกัน แต่ด้วยเหตุผลบางประการการแทรกไม่ทำงาน และไม่เคยแสดงข้อความแสดงข้อผิดพลาดให้ฉันเลย

ฉันกำลังทดสอบสิ่งนี้บนเครื่องจำลอง BlackBerry 9550

นี่คือคำถามของฉัน:

final String insertQuery
    = "INSERT INTO 'Auth'( "
        + "'" + USER_ID_KEY + "', "
        + "'" + USER_NAME_KEY + "', "
        + "'" + USER_PASSWORD_KEY + "' ) "
        + "VALUES ( "
        + userId + ", "
        + "'" + username + "', "
        + "'" + password + "' ) ";

และรหัสที่ฉันใช้เพื่อเรียกใช้:

final Statement insertOrUpdateStatement;

insertOrUpdateStatement
    = database.createStatement(insertQuery);

insertOrUpdateStatement.prepare();
insertOrUpdateStatement.execute();
insertOrUpdateStatement.close();

มันดำเนินการได้ดี ฉันไม่ได้รับข้อความแสดงข้อผิดพลาด แต่ข้อมูลไม่เคยถูกแทรก ฉันใช้เบราว์เซอร์ SQLite ที่แตกต่างกัน 3 ตัวและ BlackBerry API เพื่อยืนยันสิ่งนี้

ฉันได้ลองใช้ธุรกรรมที่ชัดเจนแล้วเช่นกัน แต่ก็ไม่ได้ผลเช่นกัน ฉันค้นหาปัญหาที่คล้ายกันแล้ว ลองใช้โค้ดนี้หลายรูปแบบ แต่ก็ไม่ได้ผล ช่วย?


person Andrew Koster    schedule 06.07.2011    source แหล่งที่มา
comment
นี่คือคลาสทั้งหมดที่ใช้ฟังก์ชันการเข้าสู่ระบบที่ฉันใช้เพื่อทดสอบสิ่งนี้ ลิงก์   -  person Andrew Koster    schedule 07.07.2011
comment
หลังจากพยายามมาทั้งวันโดยไม่ประสบความสำเร็จ ในที่สุดมันก็เริ่มทำงาน ฉันไม่สามารถบอกได้ว่าครั้งนี้ฉันทำแตกต่างไปจากเดิมหรือไม่ นี่เป็นสภาพแวดล้อมการพัฒนาที่ไม่สม่ำเสมอที่สุดที่ฉันเคยใช้ นอกเหนือจากตัวแก้ไข/คอมไพเลอร์ภาษาโคบอลโบราณ   -  person Andrew Koster    schedule 07.07.2011


คำตอบ (1)


ฉันถือว่านี่เป็นเพราะคุณมีเครื่องหมายคำพูดเดี่ยวมากเกินไปรอบตารางและเขตข้อมูลของคุณ คุณได้ลองลบเครื่องหมายคำพูดออกจากไวยากรณ์การแทรกเช่น

final String insertQuery
         = "INSERT INTO Auth(USER_ID_KEY,USER_ID_KEY,USER_PASSWORD_KEY) "
            + "VALUES ("
            + userId + ", "
            + "'" + username + "', "
            + "'" + password + "' ) ";
person George Johnston    schedule 06.07.2011
comment
เหตุผลที่ฉันถือว่าเป็นเพราะ Sqlite ไม่ใช่หนึ่งในความเชี่ยวชาญของฉัน แต่ข้อความค้นหาของคุณอาจใช้ไม่ได้ผลใน mySQL หรือ SQL Server - ดังนั้นฉันคิดว่ามันจะอยู่ที่นี่เช่นกัน - person George Johnston; 06.07.2011
comment
ไม่ใช่ความเชี่ยวชาญของฉันเช่นกัน ฉันแค่พยายามเข้าใกล้ตัวอย่างโค้ดที่ฉันเคยเห็นให้มากที่สุด ฉันลบเครื่องหมายคำพูดออกแล้วและไม่มีอะไรเปลี่ยนแปลง แม้ว่าจะเป็นข้อผิดพลาดทางไวยากรณ์ แต่ฉันควรได้รับข้อยกเว้น ไม่ใช่ความล้มเหลวที่เงียบงัน - person Andrew Koster; 06.07.2011