sql >> Database >  >> RDS >> Sqlserver

pymssql voert opgeslagen procedure uit maar geeft geen resultaten

Het is me gelukt om het probleem op te lossen. conn.commit() . aanroepen zorgde ervoor dat de cursor zijn resultaten verloor. Ik heb waarschijnlijk een deel van de pymssql-documentatie verkeerd gelezen en die regel per ongeluk toegevoegd - code werkt perfect zonder.

BEWERKEN :Ik merkte dat nadat ik deze wijziging had aangebracht, de opgeslagen procedure de resultaten zou retourneren, maar de invoeg-/bijwerkgedeelten van de procedure werden niet opgeslagen. Nu is het me duidelijk wat conn.commit() was aan het doen. Als uw opgeslagen procedure resultaten retourneert EN wijzigingen aanbrengt in de database, moet u conn.commit() aanroepen. nadat je ze hebt opgehaald.

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. Hoe ontbrekende gegevens voor meerdere groeperingen binnen de tijdspanne op te nemen?

  2. Oorzaken van MySQL-fout 2014 Kan geen query's uitvoeren terwijl andere niet-gebufferde query's actief zijn

  3. Hoe kan ik de wijzigingen die ik heb aangebracht in een gegevenstabel vastleggen in de tabel waaruit ik deze heb gepakt?

  4. #1136 - Kolomtelling komt niet overeen met waardetelling op rij 1