/*
**    Name: store.c
**
**    Date: Thu Jan 17 12:02:13 2002
**
*/

#include "ODBC.h"
#include "rmamem.h"
#include <string.h>

void store_parameter(int parameter,ODBCLibParameterType type,int size)
    {
    int len;

    odbcquerytype.parameters[odbcparameter_index].type = type;
    odbcquerytype.parameters[odbcparameter_index].size = size;

    if (type == ODBC_VALUE)
        {
        odbcquerytype.parameters[odbcparameter_index].value = parameter;
        }
    else if (type == ODBC_REFERENCE)
        {
        if (size > 0)
            {
            if (parameter > 0)
                {
                odbcquerytype.parameters[odbcparameter_index].value = (int)rmamalloc(size);
                memcpy((void *)odbcquerytype.parameters[odbcparameter_index].value,
                       (void *)parameter,
                       size);
                }
            else
                {
                odbcquerytype.parameters[odbcparameter_index].value = parameter;
                }
            }
        else if (size == -3 && parameter > 0)
            {
            len = strlen((char *)parameter) + 1;
            odbcquerytype.parameters[odbcparameter_index].value = (int)rmamalloc(len);
            memcpy((void *)odbcquerytype.parameters[odbcparameter_index].value,
                   (void *)parameter,
                   len);
            }
        else
            {
            odbcquerytype.parameters[odbcparameter_index].type = ODBC_VALUE;
            odbcquerytype.parameters[odbcparameter_index].value = parameter;
            }

        }

    odbcparameter_index++;
    }
