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

SQLiteはSQL操作のみをサポートし、変数、変数の割り当て、ループ、またはその他のプログラム構造を直接サポートしません。これらの構成をサポートする他の言語でこのコードを記述してから、動的SQLを構成するか、選択した言語に関連付けられたSQLiteサポートライブラリの1つを使用して、コマンドをSQLiteに送信する必要があります。

于 2012-09-25T18:38:28.510 に答える
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 に答える