Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Geçici analiz gerçekleştiren uygulamalar genellikle çalışma zamanında SQL deyimleri oluşturur. Örneğin, bir elektronik tablo kullanıcının veri almak için sütunları seçmesine izin verebilir:
// SQL_Statements_Constructed_at_Run_Time.cpp
#include <windows.h>
#include <stdio.h>
#include <sqltypes.h>
int main() {
SQLCHAR *Statement = 0, *TableName = 0;
SQLCHAR **TableNamesArray, **ColumnNamesArray = 0;
BOOL *ColumnSelectedArray = 0;
BOOL CommaNeeded;
SQLSMALLINT i = 0, NumColumns = 0;
// Use SQLTables to build a list of tables (TableNamesArray[]). Let the
// user select a table and store the selected table in TableName.
// Use SQLColumns to build a list of the columns in the selected table
// (ColumnNamesArray). Set NumColumns to the number of columns in the
// table. Let the user select one or more columns and flag these columns
// in ColumnSelectedArray[].
// Build a SELECT statement from the selected columns.
CommaNeeded = FALSE;
Statement = (SQLCHAR*)malloc(8);
strcpy_s((char*)Statement, 8, "SELECT ");
for (i = 0 ; i = NumColumns ; i++) {
if (ColumnSelectedArray[i]) {
if (CommaNeeded)
strcat_s((char*)Statement, sizeof(Statement), ",");
else
CommaNeeded = TRUE;
strcat_s((char*)Statement, sizeof(Statement), (char*)ColumnNamesArray[i]);
}
}
strcat_s((char*)Statement, 15, " FROM ");
// strcat_s((char*)Statement, 100, (char*)TableName);
// Execute the statement . It will be executed once, do not prepare it.
// SQLExecDirect(hstmt, Statement, SQL_NTS);
}
Genellikle çalışma zamanında SQL deyimleri oluşturan bir diğer uygulama sınıfı da uygulama geliştirme ortamlarıdır. Ancak oluşturdukları deyimler, genellikle optimize edilebilecekleri ve test edilebilecekleri inşa ettikleri uygulamada sabit kodlanmıştır.
Çalışma zamanında SQL deyimleri oluşturan uygulamalar kullanıcıya büyük esneklik sağlayabilir. Yukarıdaki örnekte görüldüğü gibi WHERE yan tümceleri, ORDER BY yan tümceleri veya birleşimleri gibi yaygın işlemleri bile desteklemeyen sql deyimlerini çalışma zamanında oluşturmak, sabit kodlama deyimlerinden çok daha karmaşıktır. Ayrıca, rastgele sayıda SQL deyimi oluşturabildiğinden bu tür uygulamaların test edilmesi sorunludur.
Çalışma zamanında SQL deyimleri oluşturmanın olası bir dezavantajı, bir deyimi oluşturmak için sabit kodlanmış deyim kullanmaktan çok daha uzun sürmesidir. Neyse ki, bu nadiren bir sorundur. Bu tür uygulamalar genellikle kullanıcı arabirimi açısından yoğundur ve uygulamanın SQL deyimleri oluşturmak için harcadığı süre, kullanıcının ölçüt girmek için harcadığı zamana kıyasla genellikle küçüktür.