Android 如何在SQLite中使用和调用过程
这是一个示例程序Android 如何在SQLite中使用和调用过程,android,database,sqlite,Android,Database,Sqlite,这是一个示例程序 DROP PROCEDURE IF EXISTS AddEdge; DELIMITER | CREATE PROCEDURE AddEdge( pSourceName VARCHAR(20), pDestinationName VARCHAR(20), pValue INT ) BEGIN DECLARE vSourceID, vDestinationID, vEdgeID INT; SET vSourceID = ( SELECT NodeID
DROP PROCEDURE IF EXISTS AddEdge;
DELIMITER |
CREATE PROCEDURE AddEdge(
pSourceName VARCHAR(20), pDestinationName VARCHAR(20), pValue INT
)
BEGIN
DECLARE vSourceID, vDestinationID, vEdgeID INT;
SET vSourceID = ( SELECT NodeID FROM nodes WHERE NodeName = pSourceName );
IF vSourceID IS NULL THEN
BEGIN
INSERT INTO nodes (NodeName,Total) VALUES (pSourceName,0);
SET vSourceID = LAST_INSERT_ID();
END;
END IF;
SET vDestinationID = ( SELECT NodeID FROM nodes WHERE NodeName = pDestinationName );
IF vDestinationID IS NULL THEN
BEGIN
INSERT INTO nodes(NodeName, Total)
VALUES(pDestinationName,0);
SET vDestinationID = LAST_INSERT_ID();
END;
END IF;
SET vEdgeID = ( SELECT EdgeID FROM edges
WHERE sourceNodeID = vSourceID AND dID = vDestinationID
);
IF vEdgeID IS NULL THEN
INSERT INTO edges(sourceNodeID,destinationNodeID,value)
VALUES(vSourceNodeID,vDestinationID,pValue);
ELSE
UPDATE edges SET value = pValue
WHERE sourceNodeID = vSourceID AND destinationNodeID = vDestinationID;
END IF;
END;
|
DELIMITER
如何在android中使用的数据库SQLite中使用上述过程?
事实上,我是一个新来处理android数据库的人,比如SQLite
谢谢
为了实现简单性,SQLite不得不牺牲其他功能
一些人认为有用的特性,例如高
并发性、细粒度访问控制、丰富的内置
函数、存储过程、深奥的SQL语言功能、XML
和/或Java扩展、TB或PB级的可伸缩性,等等-
但在这里您可以找到一些解决方法:。有对
TRIGGER
s的支持,但仅此而已。您必须将该存储过程移植到Java。@Jens您能给我一些详细信息或链接来帮助上面的工作吗?如何在Androids中使用SQLite来使用触发器?@user1370786这里是、a和相应的详细信息,所以post@Imran Rana非常有用,谢谢,这里提到的解决方法在Android上并不容易,除非您打算为整个支持存储过程的sqlite包含一个重新编译的本机库+一个新的JNI包装器(以及与重新实现依赖于SDK中的类的类相关的所有问题)。但是,如果你真的需要狂欢,你可以考虑做类似的事情。