0

我使用 Firefox 插件 SQLite Manager 执行我的 SQL:

    declare @id int
    declare @lon float
    declare @lat float
    set @id=5
    set @lon=118.476000
    set @lat=32.033720
    while @i<=10000
      begin
        INSERT INTO njdm 
          (ID,dalei,xiaolei,hanyi,level,longitude,latitude) 
        VALUES 
          (@id, 5, 10, "地名描述",1,@lon,@lat)

        set @id=@id+1
        set @lon=@lon+0.000010
        set @lat=@lat+0.000010
      end

并得到错误:

    [ near "declare": syntax error ]
    Exception Name: NS_ERROR_FAILURE
    Exception Message: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE)                          [mozIStorageConnection.createStatement]

有什么帮助吗?TIA!

4

3 回答 3

0
      declare @id int
        declare @lon float
        declare @lat float
        set @id=5
        set @lon=118.476000
        set @lat=32.033720
        while @id<=10000
          begin
            INSERT INTO njdm 
              (ID,dalei,xiaolei,hanyi,level,longitude,latitude) 
            VALUES 
              (@id, 5, 10, "地名描述",1,@lon,@lat)

            set @id=@id+1
            set @lon=@lon+0.000010
            set @lat=@lat+0.000010
          end

Note:  while @id<=10000 instead of  while @i<=10000
于 2012-09-18T04:17:35.887 回答
0

SQLite似乎不支持 WHILE 构造。您也许可以使用额外的表格来实现类似的效果,但将一些工作卸载到应用程序可能更容易。

于 2012-09-25T18:00:22.103 回答
0

SQLite支持SQL 操作,它不直接支持变量、变量赋值、循环或其他程序结构。您需要用支持这些结构的其他语言编写此代码,然后通过构建动态 SQL 或使用与您选择的语言关联的 SQLite 支持库之一将命令发送到 SQLite。

于 2012-09-25T18:38:28.510 回答