Проектирование ИС. Методичка / Лабораторные по ПРОЕКТИРОВАНИЮ ИС / lab7_pgs
.htmмБВПТБФПТОБС ТБВПФБ 19 мБВПТБФПТОБС ТБВПФБ 7
чщрпмоеойе ртпуфекыйи SQL-претбфптпч у йурпмшъпчбойен утедуфч ODBC.
гЕМШ ТБВПФЩ
пЪОБЛПНЙФШУС УП УФТХЛФХТПК РТПЗТБНН, ЙУРПМШЪХАЭЙЕ УТЕДУФЧБ ODBC, ТЕБМЙЪПЧБФШ Й ЧЩРПМОЙФШ У ЙУРПМШЪПЧБОЙЕН РТПУФЕКЫЙИ ЖХОЛГЙК ODBC ЪБРТПУЩ, УЧСЪБООЩЕ У НПДЙЖЙЛБГЙЕК ФБВМЙГ.
уПДЕТЦБОЙЕ ТБВПФЩ Й НЕФПДЙЮЕУЛЙЕ ХЛБЪБОЙС
Л ЕЕ ЧЩРПМОЕОЙА
дМС ЧЩРПМОЕОЙС ТБВПФЩ ОЕПВИПДЙНП
ПЪОБЛПНЙФШУС УП УФТХЛФХТПК РТПЗТБННЩ ODBC;
ЙЪХЮЙФШ ЖХОЛГЙЙ ЧЩРПМОЕОЙС РПДЗПФПЧЙФЕМШОЩИ ПРЕТБГЙК Ч ODBC-РТПЗТБННЕ;
ПЪОБЛПНЙФШУС УП УТЕДУФЧБНЙ ПВТБВПФЛЙ ПЫЙВПЛ Ч ODBC-РТПЗТБННЕ;
ЙЪХЮЙФШ ЖХОЛГЙЙ ОЕРПУТЕДУФЧЕООПЗП Й РПДЗПФБЧМЙЧБЕНПЗП ЧЩРПМОЕОЙС SQL-ПРЕТБФПТПЧ, РЕТЕДБЮЙ РБТБНЕФТПЧ;
ОБУФТПЙФШ УТЕДХ ЧЩРПМОЕОЙС, ТБЪТБВПФБФШ Й ПФМБДЙФШ ODBC-РТПЗТБННХ.
1. уФТХЛФХТБ ODBC-РТПЗТБННЩ Й ЖХОЛГЙЙ ЙОЙГЙБМЙЪБГЙЙ
пВЭБС УФТХЛФХТБ ODBC-РТПЗТБННЩ ЙНЕЕФ ЧЙД:
йДЕОФЙЖЙЛБФПТ ПЛТХЦЕОЙС ЛБЦДПЗП РТЙМПЦЕОЙС ODBC ПРЙУЩЧБЕФУС ЖХОЛГЙЕК
SQLAllocEnv, ЛПФПТЩК ДПМЦЕО ВЩФШ ПУЧПВПЦДЕО Ч ЛПОГЕ РТЙМПЦЕОЙС У РПНПЭША ЖХОЛГЙЙ SQLFreeEnv. фЙР ЙДЕОФЙЖЙЛБФПТБ ПЛТХЦЕОЙС HENV.
RETCODE SQLAllocEnv (env)
HENV env - ХЛБЪБФЕМШ ПВМБУФЙ ИТБОЕОЙС Ч РБНСФЙ ЙДЕОФЙЖЙЛБФПТБ ПЛТХЦЕОЙС.
RETCODE SQLFreeEnv (env)
HENV env - ЙНС ЙДЕОФЙЖЙЛБФПТБ ПЛТХЦЕОЙС, ЛПФПТЩК ДПМЦЕО ВЩФШ ПУЧПВПЦДЕО.
йДЕОФЙЖЙЛБФПТ УПЕДЙОЕОЙС РТЕДУФБЧМСЕФ УПВПК УПЕДЙОЕОЙЕ НЕЦДХ ЙУФПЮОЙЛПН ДБООЩИ Й РТЙЛМБДОПК РТПЗТБННПК. дМС ЛБЦДПЗП ЙУФПЮОЙЛБ ДБООЩИ, У ЛПФПТЩН РТЙМПЦЕОЙЕ РТЕДРПМБЗБЕФ УПЕДЙОЙФШУС ДПМЦЕО ВЩФШ ОБЪОБЮЕО ЙДЕОФЙЖЙЛБФПТ УПЕДЙОЕОЙС
SQLAllocConnect Й ПУЧПВПЦДЕО SQLFreeConnect. рТЙМПЦЕОЙЕ НПЦЕФ УПЕДЙОЙФШУС У ЙУФПЮОЙЛПН ДБООЩИ, ЙУРПМШЪХС SQLConnect Й ТБЪЯЕДЙОЙФШУС, ЙУРПМШЪХС SQLDisconnect. фЙР ЙДЕОФЙЖЙЛБФПТБ УПЕДЙОЕОЙС HDBC.
RETCODE SQLAllocConnect (env, dbc)
HENV env - ХЛБЪБФЕМШ ОБ ЙДЕОФЙЖЙЛБФПТ ПЛТХЦЕОЙС РТЙЛМБДОПК РТПЗТБННЩ.
HDBC dbc - ХЛБЪБФЕМШ ПВМБУФЙ ИТБОЕОЙС РБНСФЙ ДМС ЙДЕОФЙЖЙЛБФПТБ УПЕДЙОЕОЙС.
RETCODE SQLFreeConnect (dbc)
HDBC dbc - ХЛБЪБФЕМШ ПВМБУФЙ РБНСФЙ ДМС ПУЧПВПЦДБЕНПЗП ЙДЕОФЙЖЙЛБФПТБ УПЕДЙОЕОЙС.
RETCODE SQLConnect(dbc, szDSN, sbDSN, szUID, sbUID, szAuthStr, cbAuthStr)
HDBC dbc - ЙДЕОФЙЖЙЛБФПТ УПЕДЙОЕОЙС.
UCHAR szDSN - УФТПЛБ У ЙНЕОЕН ЙУФПЮОЙЛБ ДБООЩИ, У ЛПФПТЩН РТЙЛМБДОБС РТПЗТБННБ УПВЙТБЕФУС УПЕДЙОЙФШУС.
SWORD sbDSN - ДМЙОБ УФТПЛЙ ЙУФПЮОЙЛБ ДБООЩИ, ЕУМЙ ЬФП ЙНС ЙНЕЕФ ОХМЕЧПЕ ПЛПОЮБОЙЕ, ФП ЬФПФ РБТБНЕФТ НПЦОП ХУФБОПЧЙФШ Ч SQL_NTS, ЛПФПТЩК СЧМСЕФУС ЛПОУФБОФПК ODBC Й ЙУРПМШЪХЕФУС ЧНЕУФП ДМЙОЩ РБТБНЕФТБ, ЕУМЙ РБТБНЕФТ УПДЕТЦЙФ УФТПЛХ У ОХМЕЧЩН ПЛПОЮБОЙЕН.
UCHAR szUID - ЙНС РПМШЪПЧБФЕМС.
SWORD sbUID - ДМЙОБ ЙНЕОЙ РПМШЪПЧБФЕМС ЙМЙ SQL_NTS.
UCHAR szAuthStr - РБТПМШ РПМШЪПЧБФЕМС.
SWORD cbAuthStr - ДМЙОБ РБТПМС.
RETCODE SQLDisconnect (dbc)
HDBC dbc - ЙДЕОФЙЖЙЛБФПТ ДПУФХРБ ДМС ПФУПЕДЙОЕОЙС.
йДЕОФЙЖЙЛБФПТ ПРЕТБФПТБ БОБМПЗЙЮЕО ЙДЕОФЙЖЙЛБФПТХ ПЛТХЦЕОЙС ЙМЙ УПЕДЙОЕОЙС ЪБ ЙУЛМАЮЕОЙЕН ФПЗП, ЮФП ПО УУЩМБЕФУС ОБ SQL-ПРЕТБФПТ. йДЕОФЙЖЙЛБФПТ УПЕДЙОЕОЙС НПЦЕФ ВЩФШ УЧСЪБО ОЕУЛПМШЛЙНЙ ЙДЕОФЙЖЙЛБФПТБНЙ ПРЕТБФПТПЧ, ОП ЛБЦДЩК ЙДЕОФЙЖЙЛБФПТ ПРЕТБФПТБ УЧСЪБО ФПМШЛП УП УЧПЙН ЙДЕОФЙЖЙЛБФПТПН УПЕДЙОЕОЙС. юФПВЩ ОБЪОБЮЙФШ ЙДЕОФЙЖЙЛБФПТ ПРЕТБФПТБ, РТЙМПЦЕОЙЕ ЧЩЪЩЧБЕФ ЖХОЛГЙА
SQLAllocStmt, Б ДМС ПУЧПВПЦДЕОЙС SQLFreeStmt. фЙР ЙДЕОФЙЖЙЛБФПТБ ПРЕТБФПТБ HSTMT.
RETCODE SQLAllocStmt (dbc, stmt)
HDBC dbc - ЙДЕОФЙЖЙЛБФПТ УПЕДЙОЕОЙС.
HSTMT stmt - ХЛБЪБФЕМШ ПВМБУФЙ ИТБОЕОЙС Ч РБНСФЙ ДМС ЙДЕОФЙЖЙЛБФПТБ ПРЕТБФПТБ.
RETCODE SQLFreeStmt (stmt, fOption)
HSTMT stmt -ЙДЕОФЙЖЙЛБФПТ ПРЕТБФПТБ.
UWORD fOption - ПДОБ ЙЪ УМЕДХАЭЙИ ПРГЙК:
SQL_CLOSE - ЪБЛТЩЧБЕФ ЛХТУПТ, УЧСЪБООЩК У hstmt, (ЕУМЙ ПО ВЩМ ПРТЕДЕМЕО) Й ПФВТБУЩЧБЕФ ЧУЕ ПЦЙДБЕНЩЕ ТЕЪХМШФБФЩ. рТЙЛМБДОБС РТПЗТБННБ НПЦЕФ ЧОПЧШ ПФЛТЩФШ ЬФПФ ЛХТУПТ РПЪДОЕЕ, ЧОПЧШ ЧЩРПМОЙФШ ПРЕТБФПТ SELECT У ФЕНЙ ЦЕ УБНЩНЙ ЙМЙ ДТХЗЙНЙ ЪОБЮЕОЙСНЙ РБТБНЕФТПЧ. еУМЙ ЛХТУПТ ОЕ ПФЛТЩФ, ФП ЬФБ ПРГЙС ОЕ РПЧМЙСЕФ ОБ РТПЗТБННХ.
SQL_DROP - ПУЧПВПЦДБЕФ hstmt, ПУЧПВПЦДБЕФ ЧУЕ ТЕУХТУЩ, УЧСЪБООЩЕ У ОЙН, ЪБЛТЩЧБЕФ ЛХТУПТ, ЕУМЙ ПО ПФЛТЩФ, Й ПФВТБУЩЧБЕФ ЧУЕ ПЦЙДБЕНЩЕ УФТПЛЙ. ьФБ ПРГЙС ЪБЧЕТЫБЕФ ЧУЕ ПВТБЭЕОЙС Л hstmt. hstmt ПВСЪБФЕМШОП ДПМЦЕО ВЩФШ РЕТЕОБЪОБЮЕО ДМС РПЧФПТОПЗП ЙУРПМШЪПЧБОЙС. ьФБ ПРГЙС ПУЧПВПЦДБЕФ ЧУЕ ТЕУХТУЩ, ЛПФПТЩЕ ВЩМЙ ПРТЕДЕМЕОЩ У РПНПЭША ЖХОЛГЙЙ SQLFreeStmt.
SQL_UNBIND - ПУЧПВПЦДБЕФ ЧУЕ ВХЖЕТЩ УФПМВГПЧ, ЛПФПТЩЕ РПЧФПТОП ЙУРПМШЪХАФУС ЖХОЛГЙЕК SQLBindCol ДМС ДБООПЗП ЙДЕОФЙЖЙЛБФПТБ ПРЕТБФПТБ.
SQL_RESET_PARAMS - ПУЧПВПЦДБЕФ ЧУЕ ВХЖЕТЩ РБТБНЕФТПЧ, ЛПФПТЩЕ ВЩМЙ ХУФБОПЧМЕОЩ ЖХОЛГЙЕК SQLBindCol ДМС ДБООПЗП ЙДЕОФЙЖЙЛБФПТБ ПРЕТБФПТБ.
2. уТЕДУФЧБ ПФУМЕЦЙЧБОЙС ПЫЙВПЛ
дМС ПФУМЕЦЙЧБОЙС ПЫЙВПЛ Ч ODBC ЙУРПМШЪХЕФУС ЖХОЛГЙС SQLError, ЛПФПТБС ЧПЪЧТБЭБЕФ УППВЭЕОЙЕ ПВ ПЫЙВЛЕ РТЙ ОЕХДБЮОПН ЪБЧЕТЫЕОЙЙ ЛБЛПК-МЙВП ЖХОЛГЙЙ ODBC.
лБЦДБС ODBC-ЖХОЛГЙС ЧПЪЧТБЭБЕФ RETCODE, ЛПФПТЩК РТЙОЙНБЕФ ПДОП ЙЪ ОЙЦЕУМЕДХАЭЙИ ЪОБЮЕОЙК:
SQL_SUCCESS пРЕТБГЙС ЧЩРПМОЕОБ ВЕЪ ПЫЙВЛЙ.
;
SQL_SUCCESS_WITH_INFO жХОЛГЙС ЪБЧЕТЫЕОБ, ОП РТЙ ЧЩЪПЧЕ
SQLError ХЛБЪЩЧБЕФ ОБ ПЫЙВЛХ. ч ВПМШЫЙОУФЧЕ УМХЮБЕЧ ЬФП ЧПЪОЙЛБЕФ, ЛПЗДБ ЪОБЮЕОЙЕ, ЛПФПТПЕ ДПМЦОП ВЩФШ ЧПЪЧТБЭЕОП ПЮЕОШ ВПМШЫПЗП ТБЪНЕТБ, ЮЕН ЬФП РТЕДХУНПФТЕОП ВХЖЕТПН РТЙЛМБДОПК РТПЗТБННЩ;
SQL_ERROR жХОЛГЙС ОЕ ВЩМБ ЪБЧЕТЫЕОБ ЙЪ-ЪБ ЧПЪОЙЛЫЕК ПЫЙВЛЙ. рТЙ ЧЩЪПЧЕ
SQLError НПЦОП ВХДЕФ РПМХЮЙФШ ВПМШЫЕ ЙОЖПТНБГЙЙ П УМПЦЙЧЫЕКУС УЙФХБГЙЙ;
SQL_INVALID_HANDLE оЕ РТБЧЙМШОП ПРТЕДЕМЕО ЙДЕОФЙЖЙЛБФПТ ПЛТХЦЕОЙС, УПЕДЙОЕОЙС ЙМЙ ПРЕТБФПТБ. ьФП ЮБУФП УМХЮБЕФУС, ЛПЗДБ ЙДЕОФЙЖЙЛБФПТ ЙУРПМШЪХЕФУС РПУМЕ ФПЗП, ЛБЛ ПО ВЩМ ПУЧПВПЦДЕО ЙМЙ ЕУМЙ ВЩМ ПРТЕДЕМЕО ОХМЕЧПК ХЛБЪБФЕМШ;
SQL_NO_DATA_FOUND вПМШЫЕ ОЕФ РПДИПДСЭЕК ЙОЖПТНБГЙЙ. жБЛФЙЮЕУЛЙ ЬФП ОЕ СЧМСЕФУС ПЫЙВЛПК. юБЭЕ ЧУЕЗП ФБЛПК УФБФХУ ЧПЪОЙЛБЕФ РТЙ ЙУРПМШЪПЧБОЙЙ ЛХТУПТБ, ЛПЗДБ ВПМШЫЕ ОЕФ УФТПЛ ДМС ЕЗП РТПДЧЙЦЕОЙС;
SQL_NEED_DA
TA оЕПВИПДЙНЩ ДБООЩЕ ДМС РБТБНЕФТБ.
RETCODE SQLError (henv, hdbc, hsmt, szSqlState, pfNativeError, szErrorMsg, cbErrorMsgMax, cbErrorMsg)
HENV henv - ЙДЕОФЙЖЙЛБФПТ ПЛТХЦЕОЙС.
HDBC hdbc - ЙДЕОФЙЖЙЛБФПТ УПЕДЙОЕОЙС.
HSTMT hsmt - ЙДЕОФЙЖЙЛБФПТ ПРЕТБФПТБ.
UCHAR szSqlState - SQLSTATE Ч ЛБЮЕУФЧЕ УФТПЛЙ ЪБЧЕТЫЕОЙС.
SDWORD pfNativeError - Ч ЬФПН РБТБНЕФТЕ Й ВХДЕФ ЧПЪЧТБЭЕОБ ПЫЙВЛБ, ЧПЪОЙЛЫБС Ч ухвд, Б ФБЛЦЕ ЕЕ УПВУФЧЕООЩК ЛПД. еУМЙ УППФЧЕФУФЧХАЭЕЗП УПВУФЧЕООПЗП ЛПДБ ПЫЙВЛЙ ОЕ УХЭЕУФЧХЕФ, ФП ЧПЪЧТБЭБЕФУС ОПМШ.
UCHAR szErrorMsg - ХЛБЪБФЕМШ ОБ ВХЖЕТ, ЛХДБ ВХДЕФ ЧПЪЧТБЭЕО ФЕЛУФ ПЫЙВЛЙ (УФТПЛБ У ОХМЕЧЩН ПЛПОЮБОЙЕН).
SWORD cbErrorMsgMax - НБЛУЙНБМШОЩК ТБЪНЕТ ЧЩЫЕПРЙУБООПЗП ВХЖЕТБ, ДПМЦЕО ВЩФШ НЕОШЫЕ ЙМЙ ТБЧЕО SQL_MAX_MESSAGE_LENGTH-1.
SWORD cbErrorMsg - УАДБ ЧПЪЧТБЭБЕФУС ЮЙУМП ВБКФ, УЛПРЙТПЧБООЩИ Ч ВХЖЕТ.
3. оЕРПУТЕДУФЧЕООПЕ Й РПДЗПФБЧМЙЧБЕНПЕ ЧЩРПМОЕОЙЕ ПРЕТБФПТПЧ SQL
оЕРПУТЕДУФЧЕООПЕ ЧЩРПМОЕОЙЕ ЙУРПМШЪХЕФУС Ч ФЕИ УМХЮБСИ, ЛПЗДБ
SQL-
ПРЕТБФПТЩ, ЛПФПТЩЕ ДПМЦОЩ ВЩФШ ЧЩРПМОЕОЩ, ВХДХФ ЧЩРПМОСФШУС ФПМШЛП ПДЙО ТБЪ; ОЕ ФТЕВХЕФУС ЙОЖПТНБГЙЙ П ТЕЪХМШФЙТХАЭЕН НОПЦЕУФЧЕ ДП ЧЩРПМОЕОЙС ПРЕТБФПТБ;
SQLExecDirect РТЕДУФБЧМСЕФ УПВПК УБНЩК ВЩУФТЩК УРПУПВ ЪБРХУФЙФШ SQL-ПРЕТБФПТ РТЙ ПДОПТБЪПЧПН ЧЩРПМОЕОЙЙ.
RETCODE SQLExecDirect (hstmt, szSqlStr, cbSqlStr)
HSTMT hstmt- ЙДЕОФЙЖЙЛБФПТ ПРЕТБФПТБ.
UCHAR szSqlStr- УФТПЛБ У SQL-ПРЕТБФПТПН.
SDWORD cbSqlStr - ДМЙОБ УФТПЛЙ szSqlStr.
рПДЗПФБЧМЙЧБЕНПЕ ЧЩРПМОЕОЙЕ РТЕДРПЮФЙФЕМШОЕЕ ЙУРПМШЪПЧБФШ, ЛПЗДБ ОЕПВИПДЙНБ ЙОЖПТНБГЙС П ТЕЪХМШФЙТХАЭЕН НОПЦЕУФЧЕ ДП ЧЩРПМОЕОЙС ПРЕТБФПТБ ЙМЙ ЛПЗДБ ФТЕВХЕФУС ЧЩРПМОЙФШ SQL-ПРЕТБФПТ ВПМЕЕ ПДОПЗП ТБЪБ. дМС ЬФПЗП ОЕПВИПДЙНЩ ДЧЕ ЖХОЛГЙЙ SQLPrepare Й SQLExecute.
SQLPrepare РПДЗПФБЧМЙЧБЕФ SQL-УФТПЛХ ДМС ЧЩРПМОЕОЙС:
RETCODE SQLPrepare (hstmt, szSqlStr, cbSqlStr)
HSTMT hstmt - ЙДЕОФЙЖЙЛБФПТ ПРЕТБФПТБ
UCHAR szSqlStr- УФТПЛБ У SQL-ПРЕТБФПТПН
SDWORD cbSqlStr - ДМЙОБ УФТПЛЙ szSqlStr
SQLExecute ЧЩРПМОСЕФ РПДЗПФПЧМЕООЩК ПРЕТБФПТ:
RETCODE SQLExecute(hstmt)
HSTMT hstmt - ЙДЕОФЙЖЙЛБФПТ ПРЕТБФПТБ
SQLPrepare Й SQLExecDirect ПФМЙЮБАФУС ФЕН, ЮФП РТЙ ЧЩЪПЧЕ SQLPrepare ПРЕТБФПТ SQL Ч ДЕКУФЧЙФЕМШОПУФЙ ОЕ ЧЩРПМОСЕФУС, ЧНЕУФП ЬФПЗП ПРТЕДЕМСЕФУС РХФШ ДПУФХРБ Л ДБООЩН ЙУФПЮОЙЛБ ДБООЩИ. йУРПМШЪПЧБОЙЕ РПДЗПФБЧМЙЧБЕНПЗП ЧЩРПМОЕОЙС ХДПВОП ДМС ПРЕТБФПТПЧ, ЛПФПТЩЕ ВХДХФ ЧЩРПМОСФШУС ВПМЕЕ ПДОПЗП ТБЪБ. фБЛ ЛБЛ РХФШ ДПУФХРБ Л ДБООЩН ХЦЕ ПРТЕДЕМЕО, ФП ЧЩРПМОЕОЙЕ НПЦЕФ ПУХЭЕУФЧМСФШУС ОЕУЛПМШЛП ВЩУФТЕЕ, ЮЕН РТЙ ЙУРПМШЪПЧБОЙЙ SQLExecDirect. лТПНЕ ФПЗП, ЛБЦДЩК ЧЩЪПЧ SQLExecute РЕТЕДБЕФ ВБЪЕ ДБООЩИ ФПМШЛП ЙДЕОФЙЖЙЛБФПТ ДМС РМБОЙТПЧБОЙС ПВТБЭЕОЙС, Б ОЕ ЧЕУШ SQL-ПРЕТБФПТ.
4. йУРПМШЪПЧБОЙЕ РБТБНЕФТПЧ РТЙ ЧЩРПМОЕОЙЙ
рБТБНЕФТЩ ЙУРПМШЪХАФУС РТЙ ОЕРПУТЕДУФЧЕООПН Й РПДЗПФБЧМЙЧБЕНПН ЧЩРПМОЕОЙЙ. нБТЛЕТЩ РБТБНЕФТПЧ ПРТЕДЕМСАФУС Ч SQL-ПРЕТБФПТБИ У РПНПЭША ЪОБЛПЧ "?". оБРТЙНЕТ, SELECT n_post FROM s WHERE town=? ЙМЙ INSERT INTO p(name, town) VALUES (?,?). дМС ФПЗП, ЮФПВЩ УЧСЪБФШ ВХЖЕТ У НБТЛЕТБНЙ РБТБНЕФТПЧ, РТЙЛМБДОБС РТПЗТБННБ ДПМЦОБ ЧЩЪЧБФШ SQLBindParameter:
RETCODE SQLBindParameter (hsmt, ipar, fParamType, fCType, fSqlType, cbColDef, ibScale, rgbValue, cbValueMax, pcValue)
HSTMT hsmt - ЙДЕОФЙЖЙЛБФПТ ПРЕТБФПТБ, ПО ДПМЦЕО ВЩФШ ФПЮОП ФЕН ЦЕ ЙДЕОФЙЖЙЛБФПТПН ПРЕТБФПТБ, У ЛПФПТЩН ЬФПФ ПРЕТБФПТ РПДЗПФБЧМЙЧБЕФУС Й ЧЩРПМОСЕФУС.
UWORD ipar - ОПНЕТ РБТБНЕФТБ ДМС УЧСЪЙ. ч ПРЕТБФПТЕ SQL ПРЕТБФПТЩ ОХНЕТХАФУС УМЕЧБ ОБРТБЧП, ОБЮЙОБС У 1. оБРТЙНЕТ, ДМС УМЕДХАЭЕЗП SQL-ПРЕТБФПТБ ЙУРПМШЪХЕФУС ФТЙ РБТБНЕФТЙЮЕУЛЙИ НБТЛЕТБ : INSERT INTO j (n_izd, name, town) VALUES (?,?,?). юФПВЩ УЧСЪБФШ ЬФЙ РБТБНЕФТЩ, SQLBindParameter ЧЩЪЩЧБЕФУС ФТЙ ТБЪБ У ipar, ХУФБОПЧМЕООЩН Ч 1, 2 Й 3 УППФЧЕФУФЧЕООП.
SWORD fParamType - СЧМСЕФУС ФЙРПН РБТБНЕФТБ ДМС УЧСЪЙ Й НПЦЕФ РТЙОЙНБФШ ПДОП ЙЪ ФТЕИ ЪОБЮЕОЙК: SQL_PARAM_INPUT, SQL_PARAM_INPUT_OUTPUT ЙМЙ SQL_PARAM_OUTPUT. SQL_PARAM_INPUT ЙУРПМШЪХЕФУС ДМС РТПГЕДХТ, ЙУРПМШЪХАЭЙИ РБТБНЕФТЩ ЧЧПДБ. SQL_PARAM_INPUT_OUTPUT НБТЛЙТХЕФ РБТБНЕФТ ЧЧПДБ/ЧЩЧПДБ Ч РТПГЕДХТЕ. SQL_PARAM_OUTPUT НБТЛЙТХЕФ ЪОБЮЕОЙЕ ЧПЪЧТБФБ ЙМЙ РБТБНЕФТ ЧЩЧПДБ Ч РТПГЕДХТЕ.
SWORD fCType - СЧМСЕФУС у-ФЙРПН ДБООЩИ ДМС РБТБНЕФТБ. ьФП ФЙР ДБООЩИ ЙЪ ЛПФПТПЗП ОЕПВИПДЙНП ЛПОЧЕТФЙТПЧБФШ ДБООЩЕ.
SWORD fSqlType - СЧМСЕФУС ODBC ФЙРПН ДБООЩИ ДМС РБТБНЕФТБ. ьФП ФЙР ДБООЩИ Ч ЛПФПТЩИ ЛПОЧЕТФЙТХАФУС ДБООЩЕ Й ПО ДПМЦЕО УПЧРБДБФШ У SQL-ФЙРПН УФПМВГБ, УППФЧЕФУФЧХАЭЕЗП ЬФПНХ РБТБНЕФТЙЮЕУЛПНХ НБТЛЕТХ.
UDWORD УbColDef - ФПЮОПУФШ УФПМВГБ ЙМЙ ЧЩТБЦЕОЙС УППФЧЕФУФЧХАЭЕЗП НБТЛЕТБ РБТБНЕФТБ.
SWORD ibScale - ТБЪНЕТ УФПМВГБ ЙМЙ ЧЩТБЦЕОЙС УППФЧЕФУФЧХАЭЕЗП НБТЛЕТБ РБТБНЕФТБ
PTR rgbValue - ХЛБЪБФЕМШ ВХЖЕТБ ДМС ДБООЩИ РБТБНЕФТБ, ЛПФПТЩК РТЙ ЧЩЪПЧЕ SQLExecute ЙМЙ SQLExecuteDirect УПДЕТЦЙФ ДЕКУФЧЙФЕМШОЩЕ ЪОБЮЕОЙС РБТБНЕФТБ.
SDWORD УbValueMax - НБЛУЙНБМШОБС ДМЙОБ ВХЖЕТБ rgbValue.
SDWORD pcbValue - ХЛБЪБФЕМШ ВХЖЕТБ ДМС ДМЙОЩ РБТБНЕФТБ.
оЙЦЕ РТЙЧЕДЕОЩ ПУОПЧОЩЕ ЪОБЮЕОЙС у- Й SQL-ФЙРПЧ РБТБНЕФТПЧ.
у-ФЙР
SQL-ФЙР
SQL_C_BINARY
SQL_C_FLOAT
SQL_BINARY
SQL_DOUBLE
SQL_C_BIT
SQL_C_TIME
SQL_BIT
SQL_FLOAT
SQL_C_CHAR
SQL_C_DEFAULT
SQL_CHAR
SQL_INTEGER
SQL_C_DATE
SQL_C_SLONG
SQL_DATE
SQL_REAL
SQL_C_DOUBLE
SQL_C_SSHORT
SQL_DECIMAL
SQL_SMALLINT
SQL_TIME
SQL_VARCHAR
5. оБУФТПКЛБ ДПУФХРБ Л ЙУФПЮОЙЛХ ДБООЩИ
оБУФТПКЛБ ДПУФХРБ Л ЙУФПЮОЙЛХ ДБООЩИ ЧЛМАЮБЕФ:
ТЕДБЛФЙТПЧБОЙЕ ЖБКМБ .odbc.ini.
; ПРТЕДЕМЕОЙЕ РЕТЕНЕООПК
ODBCINI; ХУФБОПЧЛБ РЕТЕНЕООЩИ ПЛТХЦЕОЙС ухвд
; ЧЛМАЮЕОЙЕ ОЕПВИПДЙНЩИ ЪБЗПМПЧПЮОЩИ ЖБКМПЧ
. дМС ОБУФТПКЛЙ ЙУФПЮОЙЛБ ДБООЩИ, ОЕПВИПДЙНП РТПЧЕТЙФШ ОБИПДЙФУС МЙ УЙУФЕНОЩК ФЕЛУФПЧЩК ЖБКМ .odbc.ini Ч ДПНБЫОЕК ДЙТЕЛФПТЙЙ РПМШЪПЧБФЕМС Й ПФТЕДБЛФЙТПЧБФШ ЕЗП, ОБУФТПЙЧ ОБ ФТЕВХЕНЩЕ ЙУФПЮОЙЛЙ ДБООЩИ.
ч ЖБКМЕ .odbc.ini ДПМЦЕО ВЩФШ РПД ОЕЛПФПТЩН ЙДЕОФЙЖЙЛБФПТПН ПРЙУБО ФТЕВХЕНЩК ЙУФПЮОЙЛ ДБООЩИ, ЙНС ЛПФПТПЗП ЙУРПМШЪХЕФУС ЖХОЛГЙЕК SQLConnect(), Й ДБМЕЕ ДПМЦЕО РТЙУХФУФЧПЧБФШ ТБЪДЕМ У ДБООЩН ЙНЕОЕН, Ч ЛПФПТПН УПДЕТЦБФУС БФТЙВХФЩ, ПРЙУЩЧБАЭЙЕ ЙУФПЮОЙЛ ДБООЩИ. жБКМ .odbc.ini ДПМЦЕО УПДЕТЦБФШ ЙНС ЙУФПЮОЙЛБ ДБООЩИ, ЙНС УЕТЧЕТБ ВБЪ ДБООЩИ, ЙНС ВБЪЩ ДБООЩИ Й ДТХЗЙЕ БФТЙВХФЩ.
ч РЕТЕНЕООПК ПЛТХЦЕОЙС ODBCINI ОЕПВИПДЙНП ХЛБЪБФШ РПМОПЕ ЙНС УЙУФЕНОПЗП ЖБКМБ .odbc.ini, ЕУМЙ ПО ТБУРПМПЦЕО ОЕ Ч ДПНБЫОЕК ДЙТЕЛФПТЙЙ. уДЕМБФШ ЬФП НПЦОП, МЙВП ЧЧЕДС У ЛПОУПМЙ УППФЧЕФУФЧХАЭХА ЛПНБОДХ, МЙВП РПНЕУФЙЧ ЬФХ ЛПНБОДХ Ч ЖБКМ ЪБЗТХЪЛЙ .login. жПТНБ ЪБРЙУЙ ЛПНБОДЩ ЪБЧЙУЙФ ПФ ЙУРПМШЪХЕНПК РТПЗТБННЩ Shell-ЙОФЕТРТЕФБФПТБ.
уЙУФЕНОЩЕ ФТЕВПЧБОЙС ЪБЧЙУСФ ПФ ФПК ухвд, У ЛПФПТПК ТБВПФБЕФ РПМШЪПЧБФЕМШ. оБРТЙНЕТ, РТЙ ТБВПФЕ У ухвд Informix ЬФП ПВЕУРЕЮЙЧБЕФУС РЕТЕНЕООЩНЙ ПЛТХЦЕОЙС, ЧЩУФБЧМЕООЩНЙ Ч ЖБКМЕ .cshrc Ч ДПНБЫОЕК ДЙТЕЛФПТЙЙ РПМШЪПЧБФЕМС.
дМС РПМХЮЕОЙС ДПУФХРБ ДП ODBC-ЖХОЛГЙК, Ч РТПЗТБННЕ ДПМЦЕО ВЩФШ ПРЙУБО ЪБЗПМПЧПЮОЩК ЖБКМ sqlext.h. ч ЖБКМЕ sqltypes.h ОБИПДСФУС ПРЙУБОЙЕ ФЙРПЧ ДБООЩИ ЙУРПМШЪХЕНЩИ Ч ODBC.
лБЛ Й МАВПК ЙУИПДОЩК ЖБКМ, ОБРЙУБООЩК ОБ СЪЩЛЕ уЙ, ЖБКМ У РТПЗТБННПК, ЧЩЪЩЧБАЭЕК ODBC-ЖХОЛГЙЙ, ДПМЦЕО ЙНЕФШ ТБУЫЙТЕОЙЕ .У. рТЙ ЛПНРЙМСГЙЙ ОЕПВИПДЙНП РПДЛМАЮЙФШ ОЕПВИПДЙНЩЕ ВЙВМЙПФЕЛЙ, ЙУРПМШЪХЕНЩЕ Ч ЧЩЪЩЧБЕНЩИ ЖХОЛГЙСИ. рПУЛПМШЛХ Ч ЬФПН УМХЮБЕ ЛПНБОДОБС УФТПЛБ РТЙОЙНБЕФ ДПУФБФПЮОП УМПЦОЩК ЧЙД, ГЕМЕУППВТБЪОП ОБ ХТПЧОЕ УЙУФЕНОПЗП БДНЙОЙУФТБФПТБ ПЖПТНЙФШ ЛПНБОДОЩК ЖБКМ, Ч ЛПФПТПН РПДЛМАЮБАФУС ОЕПВИПДЙНЩЕ ВЙВМЙПФЕЛЙ.
рПУМЕДПЧБФЕМШОПУФШ ЧЩРПМОЕОЙС МБВПТБФПТОПК ТБВПФЩ
хВЕДЙФШУС Ч ОБМЙЮЙЙ Й ЪБРПМОЕООПУФЙ ВБЪЩ ДБООЩИ РПУФБЧЭЙЛПЧ
, ДЕФБМЕК, ЙЪДЕМЙК, РПУФБЧПЛ. тБЪТБВПФБФШ
ODBC-РТПЗТБННХ ДМС ТЕЫЕОЙС ЪБДБЮЙ 1 ЙЪ УППФЧЕФУФЧХАЭЕЗП ЧБТЙБОФБ У РПНПЭША ЖХОЛГЙК ОЕРПУТЕДУФЧЕООПЗП ЧЩРПМОЕОЙС. тБЪТБВПФБФШ
ODBC-РТПЗТБННХ ДМС ТЕЫЕОЙС ЪБДБЮЙ 2 ЙЪ УППФЧЕФУФЧХАЭЕЗП ЧБТЙБОФБ У РПНПЭША ЖХОЛГЙК РПДЗПФБЧМЙЧБЕНПЗП ЧЩРПМОЕОЙС. рПУМЕ ЧЩРПМОЕОЙС МБВПТБФПТОПК ТБВПФЩ РТЙЧЕУФЙ ВБЪХ ДБООЩИ Ч ЙУИПДОПЕ УПУФПСОЙЕ
. фТЕВПЧБОЙС Л ТБЪТБВБФЩЧБЕНПК РТПЗТБННЕ
тБЪТБВБФЩЧБЕНБС РТПЗТБННБ ДПМЦОБ ХДПЧМЕФЧПТСФШ УМЕДХАЭЙН ФТЕВПЧБОЙСН:
ЧУЕ ЙУРПМШЪХЕНЩЕ ЖХОЛГЙЙ ODBC ДПМЦОЩ БОБМЙЪЙТПЧБФШУС ОБ ЛПТТЕЛФОПУФШ ЛПДБ ЧПЪЧТБФБ;
Ч РТПЗТБННЕ ДПМЦЕО ВЩФШ РТЕДХУНПФТЕО ЧЩЧПД УППВЭЕОЙК ПВП ЧУЕИ ЫБЗБИ ЕЕ ЧЩРПМОЕОЙС
, Ч ФПН ЮЙУМЕ Й П ЧПЪНПЦОЩИ ПЫЙВЛБИ; РТЙ ЧЩРПМОЕОЙЙ ЪБРТПУПЧ ДПМЦОП ВЩФШ РТЕДХУНПФТЕОП ЙУРПМШЪПЧБОЙЕ РБТБНЕФТПЧ
; РБТБНЕФТЩ ЧБТЙБОФБ ЪБДБОЙС ДПМЦОЩ ВЩФШ ЧЧЕДЕОЩ Ч ИПДЕ ЧЩРПМОЕОЙС РТПЗТБННЩ Й РЕТЕДБОЩ Ч SQL-ЪБРТПУ; РТЙ ЧЩРПМОЕОЙЙ РТПЗТБННЩ ДПМЦОБ ЛПОФТПМЙТПЧБФШУС ГЕМПУФОПУФШ ВБЪЩ ДБООЩИ
; РТПЗТБННБ ДПМЦОБ ВЩФШ ДПУФБФПЮОП ДПЛХНЕОФЙТПЧБОБ
. чБТЙБОФЩ ЪБДБОЙК
чБТЙБОФ 1
йЪ ФБВМЙГЩ РПУФБЧПЛ ХДБМЙФШ РПУФБЧЛЙ РТЙ ЪБДБООЩИ РБТБНЕФТБИ ОПНЕТБ РПУФБЧЭЙЛБ (ЙНЕОЙ РПУФБЧЭЙЛБ) Й ОПНЕТБ ДЕФБМЙ.
хЧЕМЙЮЙФШ ТЕКФЙОЗ РПУФБЧЭЙЛБ
, ЧЩРПМОЙЧЫЕЗП ОБЙВПМШЫХА РПУФБЧЛХ ОЕЛПФПТПК ДЕФБМЙ, ОБ ХЛБЪБООХА ЧЕМЙЮЙОХ. чБТЙБОФ 2
хДБМЙФШ ЧУЕИ РПУФБЧЭЙЛПЧ ЙЪ ХЛБЪБООПЗП ЗПТПДБ.
йЪНЕОЙФШ ГЧЕФ УБНПК ФСЦЕМПК ДЕФБМЙ ОБ ХЛБЪБООЩК.
чБТЙБОФ 3
чУФБЧЙФШ РПУФБЧЭЙЛБ У ЪБДБООЩНЙ РБТБНЕФТБНЙ.
хДБМЙФШ УБНХА МЕЗЛХА ДЕФБМШ.
чБТЙБОФ 4
хДБМЙФШ РПУФБЧЭЙЛБ
, ЧЩРПМОЙЧЫЕЗП НЕОШЫЕ ЧУЕЗП РПУФБЧПЛ. йЪНЕОЙФШ ОБЪЧБОЙЕ ДЕФБМЙ ХЛБЪБООПЗП ГЧЕФБ Й ЧЕУБ.
чБТЙБОФ 5
хДБМЙФШ ЙЪДЕМЙЕ ЙЪ ЪБДБООПЗП ЗПТПДБ.
ч ФБВМЙГЕ РПУФБЧПЛ ЙЪНЕОЙФШ ОПНЕТ РПУФБЧЭЙЛБ РТЙ ЪБДБООПН ОПНЕТЕ ДЕФБМЙ Й ЙЪДЕМЙС.
чБТЙБОФ 6
хЧЕМЙЮЙФШ ТЕКФЙОЗ РПУФБЧЭЙЛБ
, ЧЩРПМОЙЧЫЕЗП ВПМШЫЙК УХННБТОЩК ПВЯЕН РПУФБЧПЛ, ОБ ХЛБЪБООХА ЧЕМЙЮЙОХ. чУФБЧЙФШ ДЕФБМШ У ЪБДБООЩНЙ РБТБНЕФТБНЙ.
чБТЙБОФ 7
йЪНЕОЙФШ ОБЪЧБОЙЕ Й ЗПТПД ДЕФБМЙ У НБЛУЙНБМШОЩН ЧЕУПН ОБ ХЛБЪБООЩЕ ЪОБЮЕОЙС.
хДБМЙФШ ЙЪ ФБВМЙГЩ РПУФБЧПЛ ЧУЕ РПУФБЧЛЙ ЛПОЛТЕФОПЗП РПУФБЧЭЙЛБ.
чБТЙБОФ 8
хЧЕМЙЮЙФШ ТЕКФЙОЗ РПУФБЧЭЙЛБ
, ЧЩРПМОЙЧЫЕЗП ВПМШЫЕЕ ЮЙУМП РПУФБЧПЛ, ОБ ХЛБЪБООХА ЧЕМЙЮЙОХ. хЧЕМЙЮЙФШ ЧЕУ ДЕФБМЕК ЙЪ мПОДПОБ ОБ ОЕЛПФПТХА ЧЕМЙЮЙОХ.
лПОФТПМШОЩЕ ЧПРТПУЩ
лБЛПЧБ УФТХЛФХТБ
ODBC-РТПЗТБННЩ? рЕТЕЮЙУМЙФЕ ЕЕ ПУОПЧОЩЕ ЛПНРПОЕОФЩ. у РПНПЭША ЛБЛЙИ УТЕДУФЧ
ODBC НПЦОП ПФУМЕДЙФШ ОБМЙЮЙЕ ПЫЙВЛЙ? ч ЛБЛЙИ УМХЮБСИ ОЕРПУТЕДУФЧЕООПЕ ЧЩРПМОЕОЙЕ ПРЕТБФПТПЧ СЧМСЕФУС ОБЙВПМЕЕ ЬЖЖЕЛФЙЧОЩН?
лПЗДБ ЙУРПМШЪХЕФУС РПДЗПФБЧМЙЧБЕНПЕ ЧЩРПМОЕОЙЕ?
лБЛ ПРЙУЩЧБАФУС НБТЛЕТЩ РБТБНЕФТПЧ, Й ЛБЛБС ДМС ЬФПЗП РТЕДХУНПФТЕОБ ЖХОЛГЙС? лБЛЙН ПВТБЪПН НПЦОП УЧСЪБФШ ОЕУЛПМШЛП РБТБНЕФТПЧ?
у РПНПЭША ЛБЛПЗП РБТБНЕФТБ НПЦОП ПУЧПВПДЙФШ ВХЖЕТЩ ЧУЕИ УФПМВГПЧ?
лБЛ ПРЙУБФШ ДПУФХР ДП ОЕПВИПДЙНПК ВБЪЩ ДБООЩИ?
у РПНПЭША ЛБЛПК ЖХОЛГЙЙ ПРЙУЩЧБЕФУС УПЕДЙОЕОЙЕ У ОЕПВИПДЙНЩН ЙУФПЮОЙЛПН ДБООЩИ? лБЛПЧЩ ЕЕ РБТБНЕФТЩ?