sql >> データベース >  >> RDS >> Sqlserver

pymssql はストアド プロシージャを実行しますが、結果を返しません

    私は問題を解決することができました。 conn.commit() の呼び出し カーソルが結果を失うようにしていました。おそらく pymssql のドキュメントの一部を読み間違えて、その行を誤って追加しました - コードはそれがなくても完璧に機能します。

    編集 :この変更を行った後、ストアド プロシージャは結果を返しますが、プロシージャの挿入/更新部分が保存されていないことに気付きました。 conn.commit() が何であるかは明らかです をしていました。ストアド プロシージャが結果を返し、データベースに変更を加える場合は、conn.commit() を呼び出す必要があります。

    server = 'MY\SERVER'
    user = 'user'
    password = 'password'
    database = 'db'
    proc = 'checkin'
    
    with pymssql.connect(server, user, password, database) as conn:
        with conn.cursor() as cursor:
            cursor.callproc(proc, (eha, ip, url, alias, location, rotation))
            cursor.nextset()
            results = cursor.fetchall()
            conn.commit()
            f = open('/var/wwwdata/locations.txt', 'w')
            for result in results:
                print result[0]
                f.write(result[0])
            f.close()
    



    1. 別のテーブルにない場合にのみ、1つのテーブルからユーザーを選択します

    2. Postgresql in memory database django

    3. ユーザー履歴のおかげで、取引アプリのホームページとメールをカスタマイズできます。Rails/ postgreSQLで正しい方法でそれを行うにはどうすればよいですか?

    4. DATE を使用した制約