こんにちは、私は写真を撮り、phonegap/jQuery/html5 を使用してデータベースに保存するプロジェクトに取り組んでいます。データベース エントリには、地理位置情報と、カメラが撮影した画像の BLOB を格納する必要があります。これは私がこれを行うために使用している現在の方法であり、うまくいきません。BLOB は常に挿入ステートメントを壊します。画像データの代わりに smallImage を「1」に設定すると、正常に動作します。このブロブを挿入するより良い方法はありますか? ログを見ると、smallImage が切れているように見えます。
var cameraLat;
var cameraLong;
var cameraTimestamp;
var destinationType;
var cameraLocationID;
function onGeoSuccess(position) {
cameraLat = position.coords.latitude;
console.log(cameraLat);
cameraLong = position.coords.longitude;
console.log(cameraLong);
cameraTimestamp = position.timestamp;
console.log(cameraTimestamp);
}
function geoFail(position) {
alert('code: ' + error.code + '\n' +
'message: ' + error.message + '\n');
}
function onPhotoDataSuccess(imageData) {
// Get image handle
navigator.geolocation.getCurrentPosition(onGeoSuccess, geoFail);
var smallImage = imageData;
var Latitude = cameraLat;
var longitude = cameraLong;
var timestamp = cameraTimestamp;
var LID = cameraLocationID;
console.log(Latitude); //working
console.log(longitude); //working
console.log(timestamp); //working
console.log(smallImage); // This cuts out and breaks my insert.
var db = window.openDatabase("MobilePhotos", "1.0", "MobilePhotosData", 1000000);
db.transaction(function (tx) {tx.executeSql('INSERT INTO Photos(PhotoID, PictureFile, Longitude, Latitude, Timestamp ) VALUES( '+ timestamp+LID+' ,' + smallImage + '", ' + longitude +', '+ Latitude +', "'+ timestamp +'")')})
}
function take_pic(LocationID) {
cameraLocationID=LocationID;
navigator.camera.getPicture(onPhotoDataSuccess, function(ex) {alert("Camera Error!");}, { quality : 50, destinationType: Camera.DestinationType.DATA_URL });
}
BLOB を入力しようとすると、次のエラーが表示されます。
02-05 16:10:19.702: W/System.err(12028):
android.database.sqlite.SQLiteException:
no such column: undefined (code 1): , while compiling:
INSERT INTO OrderPhotos(PhotoID, PictureFile, Longitude, Latitude, Timestamp )
VALUES( 1904010821 , "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDABsS..(3825 characters)
しかし、残りのフィールドは表示されません。何かが二重引用符を壊している可能性がありますか? それともここで何か他のことが起こっていますか?
smallImage に「1」を入力すると、出力は正常に機能します。
INSERT INTO OrderPhotos(PhotoID, PictureFile, Longitude, Latitude, Timestamp )
VALUES( 1904010821 , "1", 39.10, -84.50, 190401082)