#!/usr/bin/env python3
"""
find_ad_by_name.py - 查找 ads 表中 name 包含特定字符串的记录
"""

import sqlite3

def find_ad_by_name(name_pattern):
    db_path = r'\\ll\D\xtrssvjj\db\dpd.db'
    
    try:
        print(f"正在连接数据库: {db_path}")
        conn = sqlite3.connect(db_path, timeout=60.0)
        conn.row_factory = sqlite3.Row
        
        print(f"正在查询 ads 表中 name 包含 '{name_pattern}' 的记录...")
        
        # 使用 LIKE 进行模糊查询
        query = "SELECT * FROM ads WHERE name LIKE ?"
        cursor = conn.execute(query, (f"%{name_pattern}%",))
        
        records = cursor.fetchall()
        
        if records:
            print(f"找到 {len(records)} 条记录:")
            print("=" * 120)
            
            for i, record in enumerate(records):
                print(f"\n记录 {i+1}:")
                print("-" * 120)
                
                # 显示关键字段
                print(f"  rowid: {record['rowid']}")
                print(f"  name: {record['name']}")
                print(f"  tts: {record['tts']}")
                print(f"  ttscnt: {record['ttscnt']}")
                print(f"  totsrts: {record['totsrts']}")
                print(f"  pub: {record['pub']}")
                
                # 检查 srts 表中的对应记录数
                print(f"  srts 记录数: ")
                count_query = "SELECT COUNT(*) FROM srts WHERE adid = ?"
                count_cursor = conn.execute(count_query, (record['rowid'],))
                count = count_cursor.fetchone()[0]
                print(f"    {count}")
            
            print("=" * 120)
            
        else:
            print(f"未找到 name 包含 '{name_pattern}' 的记录")
        
        conn.close()
        print("数据库连接已关闭")
        
    except Exception as e:
        print(f"错误: {e}")
        import traceback
        traceback.print_exc()

if __name__ == "__main__":
    import sys
    if len(sys.argv) > 1:
        name_pattern = sys.argv[1]
    else:
        name_pattern = "26-04-13_11_43_51-"
    find_ad_by_name(name_pattern)
