#!/usr/bin/env python3
"""
list_first_record.py - 列出第一条记录的所有字段值，并统计srts表中的对应记录数
"""

import sqlite3

def list_first_record():
    db_path = r'\\ll\D\xtrssvjj\db\dpd.db'
    conn = None
    
    try:
        print(f"正在连接数据库: {db_path}")
        conn = sqlite3.connect(db_path, timeout=30.0)
        
        # 启用 WAL 模式
        conn.execute('PRAGMA journal_mode=WAL')
        
        # 获取倒排第一的记录（按rowid降序）
        print("\n获取倒排第一的记录（按rowid降序）:")
        first_query = '''
        SELECT rowid, * FROM ads ORDER BY rowid DESC LIMIT 1
        '''
        
        cursor = conn.execute(first_query)
        first_record = cursor.fetchone()
        
        if first_record:
            # 获取字段名
            field_names = [description[0] for description in cursor.description]
            
            print("\n第一条记录的所有字段值:")
            for i, (name, value) in enumerate(zip(field_names, first_record)):
                print(f"  {name}: {value}")
            
            # 获取rowid
            rowid = first_record[0]
            if rowid:
                # 统计srts表中的对应记录数
                print(f"\n统计srts表中adid={rowid}的记录数:")
                count_query = '''
                SELECT COUNT(*) FROM srts WHERE adid = ?
                '''
                cursor = conn.execute(count_query, (rowid,))
                count = cursor.fetchone()[0]
                print(f"  srts表中adid={rowid}的记录数: {count}")
            else:
                print("  无法获取rowid")
        else:
            print("  数据库中没有记录")
        
    except Exception as e:
        print(f"错误: {e}")
        import traceback
        traceback.print_exc()
    finally:
        if conn:
            conn.close()
            print("\n数据库连接已关闭")

if __name__ == "__main__":
    list_first_record()
