SQL API通过sp_OAMethod调用导致错误

时间:2017-05-25 08:11:09

标签: sql sql-server api

我希望在给定条件下通过API调用供应商网站向我们的系统添加项目。我们有一个复制的数据库,我希望这个过程是自动化的。

令人惊讶的是,供应商要求您登录一个地址,然后导航到另一个地址以呼叫SEND,但我不认为该会话是持久的。

下面的代码是我正在尝试创建的SP,它允许我将其用于各种更新,而不仅仅是这种特定类型。

我到目前为止的代码是:

from datetime import datetime,timedelta

def weighteddiff(d2,d1,dawn,dusk,night_weight):

    #if dusk is "before" dawn, switch roles
    day_weight = 1
    if dusk < dawn:
        day_weight = night_weight
        night_weight = 1
        placeholder = dawn
        dawn = dusk
        dusk = placeholder

    nighttime = dawn.total_seconds()/3600 + 24 - dusk.total_seconds()/3600
    daytime = 24-nighttime


    dt = d2-d1

    total_hours = 0
    total_hours += dt.days*daytime*day_weight + dt.days*nighttime*night_weight

    d1 += timedelta(days=dt.days)
    d1 -= dawn
    d2 -= dawn

    dawntime = datetime(d2.year,d2.month,d2.day,0)
    dusktime = dawntime + dusk - dawn

    if d1 < dusktime and d2 < dusktime:
        total_hours += (d2-d1).total_seconds()/3600*day_weight
    elif d1 < dusktime and d2 >= dusktime:
        total_hours += (dusktime - d1).total_seconds()/3600*day_weight
        total_hours += (d2 - dusktime).total_seconds()/3600*night_weight
    elif d1 >= dusktime and d2 >= dusktime:
        total_hours += (d2-d1).total_seconds()/3600*night_weight
    else:
        pass

    return total_hours


weight = 0.5 #weight of nightime hours

#dawn and dusk supplied as timedelta from midnight
dawn = timedelta(hours=5,minutes=0,seconds=0)
dusk = timedelta(hours=19,minutes=4,seconds=0)

d1 = datetime(2017,10,23, 14)
d2 = datetime(2017,10,23, 22)
print("test1",weighteddiff(d2,d1,dawn,dusk,weight))

d1 = datetime(2016,10,22, 20)
d2 = datetime(2016,10,23, 20) 
print("test2",weighteddiff(d2,d1,dawn,dusk,weight))

dawn = timedelta(hours=6,minutes=0,seconds=0)
dusk = timedelta(hours=1,minutes=4,seconds=0)

d1 = datetime(2017,10,22, 2)
d2 = datetime(2017,10,23, 19)
print("test3",weighteddiff(d2,d1,dawn,dusk,weight))

d1 = datetime(2016,10,22, 20)
d2 = datetime(2016,10,23, 20) 
print("test4",weighteddiff(d2,d1,dawn,dusk,weight))

0 个答案:

没有答案