Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在SQLite中使用和调用过程_Android_Database_Sqlite - Fatal编程技术网

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中的类的类相关的所有问题)。但是,如果你真的需要狂欢,你可以考虑做类似的事情。