/*
* Copyright 2004-2011 H2 Group. Multiple-Licensed under the H2 License, Version
* 1.0, and under the Eclipse Public License, Version 1.0
* (http://h2database.com/html/license.html). Initial Developer: H2 Group
*/
package org.h2.android;
import org.h2.command.Prepared;
import org.h2.result.ResultInterface;
import org.h2.value.Value;
import org.h2.value.ValueNull;
/**
* Represents a prepared statement.
*/
public class H2Statement extends H2Program {
H2Statement(Prepared prepared) {
super(prepared);
}
/**
* Execute the statement.
*/
public void execute() {
if (prepared.isQuery()) {
prepared.query(0);
} else {
prepared.update();
}
}
/**
* Execute the insert statement and return the id of the inserted row.
*
* @return the id of the inserted row
*/
public long executeInsert() {
return prepared.update();
}
/**
* Execute the query and return the value of the first column and row as a
* long.
*
* @return the value
*/
public long simpleQueryForLong() {
return simpleQuery().getLong();
}
/**
* Execute the query and return the value of the first column and row as a
* string.
*
* @return the value
*/
public String simpleQueryForString() {
return simpleQuery().getString();
}
private Value simpleQuery() {
ResultInterface result = prepared.query(1);
try {
if (result.next()) {
Value[] row = result.currentRow();
if (row.length > 0) {
return row[0];
}
}
} finally {
result.close();
}
return ValueNull.INSTANCE;
}
}