Aracılığıyla paylaş


Parametre Değerlerini Ayarlama

Bir parametrenin değerini ayarlamak için uygulama, parametreye bağlı değişkenin değerini ayarlar. Bu değerin ayarlanmasının zamanı önemli değildir, yeter ki deyim yürütülmeden önce ayarlansın. Uygulama değişkeni bağlamadan önce veya sonra değeri ayarlayabilir ve değeri istediği kadar değiştirebilir. Deyimi yürütürken, sürücü yalnızca değişkenin geçerli değerini alır. Bu, özellikle hazırlanmış bir deyim birden çok kez yürütülürse yararlıdır; uygulama, deyimi her yürütürken değişkenlerin bazıları veya tümü için yeni değerler ayarlar. Bunun bir örneği için, bu bölümün önceki bölümlerinde yer alan Hazırlanmış Yürütme bölümüne bakın.

SQLBindParameter çağrısında bir uzunluk/gösterge arabelleği bağlıysa, ifade çalıştırılmadan önce aşağıdaki değerlerden birine ayarlanmalıdır:

  • Bağlı değişkendeki verilerin bayt uzunluğu. Sürücü bu uzunluğu yalnızca değişken karakter veya ikili ise denetler (ValueType SQL_C_CHAR veya SQL_C_BINARY).

  • SQL_NTS. Veriler null olarak sonlandırılan bir dizedir.

  • SQL_NULL_DATA. Veri değeri NULL'dir ve sürücü ilişkili değişkenin değerini yoksayar.

  • SQL_DATA_AT_EXEC veya SQL_LEN_DATA_AT_EXEC makrosunun sonucu. parametresinin değeri SQLPutData ile gönderilecektir. Daha fazla bilgi için bu bölümün devamında yer alan Uzun Veri Gönderme bölümüne bakın.

Aşağıdaki tabloda, bağlı değişkenin değerleri ve uygulamanın çeşitli parametre değerleri için ayar yaptığı uzunluk/gösterge arabelleği gösterilmektedir.

Parametre

value
Parametre

(SQL)

veri tipi
Değişken (C)

veri tipi
içindeki değer

sınır

variable
içindeki değer

uzunluk/gösterge

buffer[d]
"ABC" SQL_CHAR SQL_C_CHAR ABC\0[a] SQL_NTS veya 3
10 SQL_INTEGER SQL_C_SLONG 10 --
10 SQL_INTEGER SQL_C_CHAR 10\0[a] SQL_NTS veya 2
Saat 13:00 SQL_TYPE_TIME SQL_C_TYPE_TIME 13,0,0[b] --
Saat 13:00 SQL_TİP_ZAMAN SQL_C_CHAR {t '13:00:00'}\0[a], [c] SQL_NTS veya 14
null SQL_SMALLINT SQL_C_SSHORT -- SQL_NULL_DATA

"\0" null sonlandırma karakterini temsil eder. Null sonlandırma karakteri yalnızca uzunluk/gösterge arabelleğindeki değer SQL_NTS olduğunda gereklidir.

[b] Bu listedeki sayılar, TIME_STRUCT yapısının alanlarında depolanan sayılardır.

[c] Metin ODBC tarih kaçış ibaresini kullanır. Daha fazla bilgi için bkz. Tarih, Saat ve Zaman Damgası Literalleri.

[d] Sürücülerin SQL_NULL_DATA gibi özel bir değer olup olmadığını görmek için her zaman bu değeri denetlemesi gerekir.

Bir sürücünün yürütme sırasında parametre değeriyle ne yaptığı sürücüye bağlıdır. Gerekirse, sürücü değeri C veri türünden ve bağlı değişkenin bayt uzunluğundan SQL veri türüne, hassasiyetine ve parametrenin ölçeğine dönüştürür. Çoğu durumda, sürücü değeri veri kaynağına gönderir. Bazı durumlarda, veri kaynağına deyimini göndermeden önce değeri metin olarak biçimlendirip SQL deyimine ekler.