找回密码
 加入
搜索
查看: 6949|回复: 12

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

  [复制链接]
发表于 2012-12-16 08:55:49 | 显示全部楼层 |阅读模式
本帖最后由 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=列
------------------------------------------------------------------
发表于 2012-12-17 14:30:57 | 显示全部楼层
我想写数据库现在不知道怎么连接
发表于 2012-12-17 16:05:45 | 显示全部楼层
可以这样解决:

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

然后,select * from Table limit 1 offset count-1
 楼主| 发表于 2012-12-17 17:22:56 | 显示全部楼层
回复 3# papapa314


谢谢回复!

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

这是我最不明白的地方,试过几个_SQLite....函数都未成功
发表于 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
 楼主| 发表于 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_name  ORDER BY Company DESC

SELECT Max(id) FROM table_name

结果是迷糊得更加不知道Au3 中究竟该用哪个函数来执行这些代码。。。。。
发表于 2012-12-18 13:39:09 | 显示全部楼层
_SQLite_Exec() ? 应该是用UPDaTE INSERT 等操作

查询取结果。。用这个就可以了_SQLite_Query()
 楼主| 发表于 2012-12-18 14:19:12 | 显示全部楼层
回复 7# auto

谢谢!

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

看来应该在 _SQLite_Query()  ,  _SQLite_FetchData() 上努力
发表于 2012-12-18 20:33:03 | 显示全部楼层
回复 8# sd23


    会取第一行的数据吗?
发表于 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[0], $aRow[1], $aRow[2], $aRow[3]) & @CRLF) ;显示第一行的数据。。假设有个4个字段
ENDIF
 楼主| 发表于 2012-12-19 09:28:15 | 显示全部楼层
回复 10# auto

谢谢auto!

能确定就这几个函数了,目前忙,空了再突击一下sql,有结果了再汇报。
发表于 2012-12-20 19:20:05 | 显示全部楼层
select top 1 L2 from table order by id desc
发表于 2012-12-21 16:18:29 | 显示全部楼层
select L2 from 表A  where id=(select Max(id) from 表A )
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-21 05:23 , Processed in 0.119410 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表