Sample code for 30+ languages & platforms
DataFlex

Azure Table Insert Entity

See more Azure Table Service Examples

Insert an entity into an Azure table.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoRest
    Boolean iBTls
    Integer iPort
    Boolean iBAutoReconnect
    Variant vAzAuth
    Handle hoAzAuth
    Handle hoJson
    Variant vSbRequestBody
    Handle hoSbRequestBody
    Variant vSbResponseBody
    Handle hoSbResponseBody
    Integer iRespStatusCode
    String sTemp1
    Integer iTemp1

    Move False To iSuccess

    // This example requires the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    Get Create (RefClass(cComChilkatRest)) To hoRest
    If (Not(IsComObjectCreated(hoRest))) Begin
        Send CreateComObject of hoRest
    End

    // IMPORTANT: Make sure to change "myaccount" to your actual Azure Storage Account name.
    // IMPORTANT: Also change "mytable" to the name of your Azure table.
    // We're going to POST to this URL:  https://myaccount.table.core.windows.net/mytable
    Move True To iBTls
    Move 443 To iPort
    Move True To iBAutoReconnect
    Get ComConnect Of hoRest "myaccount.table.core.windows.net" iPort iBTls iBAutoReconnect To iSuccess
    If (iSuccess <> True) Begin
        Get ComConnectFailReason Of hoRest To iTemp1
        Showln "ConnectFailReason: " iTemp1
        Get ComLastErrorText Of hoRest To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // Provide Azure Cloud credentials for the REST call.
    Get Create (RefClass(cComChilkatAuthAzureStorage)) To hoAzAuth
    If (Not(IsComObjectCreated(hoAzAuth))) Begin
        Send CreateComObject of hoAzAuth
    End
    Set ComAccessKey Of hoAzAuth To "AZURE_ACCESS_KEY"
    // The account name used here should match the 1st part of the domain passed in the call to Connect (above).
    Set ComAccount Of hoAzAuth To "myaccount"
    Set ComScheme Of hoAzAuth To "SharedKey"
    Set ComService Of hoAzAuth To "Table"

    // This causes the "x-ms-version: 2019-07-07" header to be automatically added.
    Set ComXMsVersion Of hoAzAuth To "2019-07-07"
    Get pvComObject of hoAzAuth to vAzAuth
    Get ComSetAuthAzureStorage Of hoRest vAzAuth To iSuccess

    // Note: The application does not need to explicitly set the following
    // headers: Content-Length, x-ms-date, Authorization.  These headers
    // are automatically set by Chilkat.

    // Note: The above code does not need to be repeatedly called for each REST request.
    // The rest object can be setup once, and then many requests can be sent.  Chilkat will automatically
    // reconnect within a FullRequest* method as needed.  It is only the very first connection that is explicitly
    // made via the Connect method.

    // Use this online tool to generate code from sample JSON:
    // Generate Code to Create JSON

    // The following JSON is sent in the request body.

    // {  
    //    "PartitionKey":"mypartitionkey",  
    //    "RowKey":"myrowkey",  
    //    "Timestamp":"2013-08-22T01:12:06.2608595Z",  
    //    "Address":"Mountain View",  
    //    "Age":23,  
    //    "AmountDue":200.23,  
    //    "CustomerCode":"c9da6455-213d-42c9-9a79-3e9149a57833",  
    //    "CustomerSince":"2008-07-10T00:00:00",  
    //    "IsActive":true,  
    //    "NumberOfOrders":"255"  
    // }  

    Get Create (RefClass(cComChilkatJsonObject)) To hoJson
    If (Not(IsComObjectCreated(hoJson))) Begin
        Send CreateComObject of hoJson
    End
    Get ComUpdateString Of hoJson "PartitionKey" "mypartitionkey" To iSuccess
    Get ComUpdateString Of hoJson "RowKey" "myrowkey" To iSuccess
    Get ComUpdateString Of hoJson "Timestamp" "2013-08-22T01:12:06.2608595Z" To iSuccess
    Get ComUpdateString Of hoJson "Address" "Mountain View" To iSuccess
    Get ComUpdateInt Of hoJson "Age" 23 To iSuccess
    Get ComUpdateNumber Of hoJson "AmountDue" "200.23" To iSuccess
    Get ComUpdateString Of hoJson "CustomerCode" "c9da6455-213d-42c9-9a79-3e9149a57833" To iSuccess
    Get ComUpdateString Of hoJson "CustomerSince" "2008-07-10T00:00:00" To iSuccess
    Get ComUpdateBool Of hoJson "IsActive" True To iSuccess
    Get ComUpdateString Of hoJson "NumberOfOrders" "255" To iSuccess

    // IMPORTANT: Pay attention to the options for nometadata, minimalmetadata, or fullmetadata.
    // See the Azure table service API documentation at https://docs.microsoft.com/en-us/rest/api/storageservices/insert-entity
    Get ComAddHeader Of hoRest "Accept" "application/json;odata=nometadata" To iSuccess
    Get ComAddHeader Of hoRest "Prefer" "return-no-content" To iSuccess
    Get ComAddHeader Of hoRest "Content-Type" "application/json" To iSuccess

    Get Create (RefClass(cComChilkatStringBuilder)) To hoSbRequestBody
    If (Not(IsComObjectCreated(hoSbRequestBody))) Begin
        Send CreateComObject of hoSbRequestBody
    End
    Get pvComObject of hoSbRequestBody to vSbRequestBody
    Get ComEmitSb Of hoJson vSbRequestBody To iSuccess
    Get Create (RefClass(cComChilkatStringBuilder)) To hoSbResponseBody
    If (Not(IsComObjectCreated(hoSbResponseBody))) Begin
        Send CreateComObject of hoSbResponseBody
    End
    // IMPORTANT: Change "mytable" to the name of your actual table.
    Get pvComObject of hoSbRequestBody to vSbRequestBody
    Get pvComObject of hoSbResponseBody to vSbResponseBody
    Get ComFullRequestSb Of hoRest "POST" "/mytable" vSbRequestBody vSbResponseBody To iSuccess
    If (iSuccess <> True) Begin
        Get ComLastErrorText Of hoRest To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // A status code of 204 is a success response for the case where Prefer=return-no-content.
    Get ComResponseStatusCode Of hoRest To iRespStatusCode
    Showln "Response Status Code = " iRespStatusCode
    If (iRespStatusCode >= 400) Begin
        Showln "Response Header:"
        Get ComResponseHeader Of hoRest To sTemp1
        Showln sTemp1
        Showln "Response Body:"
        Get ComGetAsString Of hoSbResponseBody To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Showln "Success."


End_Procedure