sd23 发表于 2012-12-16 08:55:49

[已解决]sqlite数据库 au3怎样读取到最后一行的数据?

本帖最后由 sd23 于 2012-12-21 15:35 编辑

表A :
id   L1    L2    L3
1      21    54    40
2      12    55    78
...
80    33    21    99

我的问题:
au3中,怎样读取到最后一行(80行)L2 列的数据(21这个值)?谢谢了
(id是自增的)
------------------------------------------------------------------
题外话:
把一个表的所有数据放入一个2维数组倒是可以解决,如单为这个就太浪费资源了
顺便写出来,也许比我还新的新手有用:
_SQLite_GetTable2d(-1,"SELECT * FROM 表名 ,$aRows1,$aRows2,$aRows3)
$aRows1[][] 就是了,$aRows2=行,$aRows3=列
------------------------------------------------------------------

sbtddh 发表于 2012-12-17 14:30:57

我想写数据库现在不知道怎么连接

papapa314 发表于 2012-12-17 16:05:45

可以这样解决:

select count(Rows1) from Table 获取列表总数count

然后,select * from Table limit 1 offset count-1

sd23 发表于 2012-12-17 17:22:56

回复 3# papapa314


谢谢回复!

请问用Au3的哪个_SQLite....函数来执行这段代码?

这是我最不明白的地方,试过几个_SQLite....函数都未成功

xms77 发表于 2012-12-17 21:46:58

用过access数据库的操作,觉得还是access数据库操作简单,如下是循环读取所以数据的操作,供参考$addfld = ObjCreate("ADODB.Connection")
        $addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $mdb_data_path & ";Jet Oledb:Database Password=" & $mdb_data_pwd)
        $RS = ObjCreate("ADODB.Recordset")
        $RS.ActiveConnection = $addfld
        $RS.Open("Select MachineName,PCName,IPaddress,MachineStatus,SoftwareRev,ClientRev,MacAddress,UpdateDateTime From " & $tblname & " Where Machinetype = 'Swage'")
        While Not $RS.eof And Not $RS.bof
                If @error = 1 Then ExitLoop
                $arrayOfdata = _DataToArray($row - 1, $RS.Fields(0).value, $RS.Fields(1).value, $RS.Fields(2).value, $RS.Fields(3).value, $RS.Fields(4).value, $RS.Fields(5).value, $RS.Fields(6).value, $RS.Fields(7).value)
                _ExcelWriteArray($oExcel, $row, 1, $arrayOfdata, 0)
                $row += 1
                $RS.movenext
        WEnd
        $RS.close

sd23 发表于 2012-12-18 00:08:37

本帖最后由 sd23 于 2012-12-18 00:25 编辑

回复 5# xms77

谢谢!

因要求内嵌数据库,所以必须用sqlite

主要是看不懂中文帮助中Au3的某些_sqlite函数用法
所以做到这步卡住了,努力学习中....

我只想有前辈指点一下 使用Au3中的哪个 _sqlite 函数即可,能找到方向就好,当然能给个示例就更好了。我不想做伸手党,只是这些个_sqlite.... 我真的很迷糊

_SQLite_Exec() ?
_SQLite_Query()    +    _SQLite_FetchData() ?
这些都试过,不得要领,失败。。。。。

用了一堆sql的代码来试,如:
select rownum,L1,L2, L3 from tablename where rownum = select max(rownum) from tablename

select * from (select a.* ,rownum as rn from a ) where rn = (select max(rownum) from a )

select * from tbl where id=maxid

SELECT MIN(id) FROM table_nameORDER BY Company DESC

SELECT Max(id) FROM table_name

结果是迷糊得更加不知道Au3 中究竟该用哪个函数来执行这些代码。。。。。

auto 发表于 2012-12-18 13:39:09

_SQLite_Exec() ? 应该是用UPDaTE INSERT 等操作

查询取结果。。用这个就可以了_SQLite_Query()

sd23 发表于 2012-12-18 14:19:12

回复 7# auto

谢谢!

这些函数我都反复试过,看来我的问题是对于使用这些函数不得要领,继续努力,同时继续求教。。。

看来应该在 _SQLite_Query(),_SQLite_FetchData() 上努力

auto 发表于 2012-12-18 20:33:03

回复 8# sd23


    会取第一行的数据吗?

auto 发表于 2012-12-18 21:34:57

_SQlite_Query (-1, "替换自己SQL查询语句;", $hQuery)

IF _SQLite_FetchData ($hQuery, $aRow, False, False) = $SQLITE_OK
ConsoleWrite(StringFormat(" %-10s%-10s%-10s%-10s ", $aRow, $aRow, $aRow, $aRow) & @CRLF) ;显示第一行的数据。。假设有个4个字段
ENDIF

sd23 发表于 2012-12-19 09:28:15

回复 10# auto

谢谢auto!

能确定就这几个函数了,目前忙,空了再突击一下sql,有结果了再汇报。

wliym 发表于 2012-12-20 19:20:05

select top 1 L2 from table order by id desc

35888894 发表于 2012-12-21 16:18:29

select L2 from 表Awhere id=(select Max(id) from 表A )
页: [1]
查看完整版本: [已解决]sqlite数据库 au3怎样读取到最后一行的数据?