Помогите разобраться с проблемой. Читал туторы Iczelion'a по работе с ODBC. Кое что понял, как читать, а как вставлять данные в БД? Почитал книги непосредственно по SQL. Есть инструкция insert into X values XX Как её оформить и с помощью неё вставить данные на асме? Код (Text): ;=========================================== .data SQLStatement1 db "insert into bla values ?",0 ;=========================================== .code invoke SQLAllocHandle, SQL_HANDLE_STMT, hConn, addr hStmt .IF ax==SQL_SUCCESS || ax==SQL_SUCCESS_WITH_INFO invoke SQLExecDirect, hStmt, addr SQLStatement1, sizeof SQLStatement1 .if ax==SQL_SUCCESS || ax==SQL_SUCCESS_WITH_INFO .else invoke MessageBox,0,0,0,0 .endif .else .ENDIF Тут возвращается ошибка.
Неа, не хочет. Всё равно ошибку даёт. И ещё, как мне SQLStatement1 связать с какими то данными. Мне ж не просто надо что то вставить в БД, а осмысленную запись какую нить. которую я введу например в EDITTEXT'e Т.е. (?) надо как то связать с нужными данными?
Rito А вы перед тем как посылать запрос к серверу БД саму базу данных то создаете и выбираете??? если нет, то смысла в посылке команды insert тут нет. Создайте для начала базу/ Попробуй код Код (Text): ;=========================================== .data SQLCreateDB db "CREATE DATABASE test_base_name",0 SQLSelectDB db "USE test_base_name",0 SQLCreateTable db "CREATE TABLE test_table (id_element INT(11) default NULL auto_increment, text char(60) default NULL, PRIMARY KEY (id_element)) ENGINE=MyISAM",0 SQLInsert db 'INSERT INTO test_table (id_element, text) VALUES (NULL, "Hello World")',0 MessageText1 db "Unable to create DATABASE",0 MessageText2 db "Unable to use DATABASE",0 MessageText3 db "Unable to create TABLE",0 MessageText4 db "Unable to insert operation",0 ;=========================================== .code invoke SQLAllocHandle, SQL_HANDLE_STMT, hConn, addr hStmt .IF ax==SQL_SUCCESS || ax==SQL_SUCCESS_WITH_INFO invoke SQLExecDirect, hStmt, addr SQLCreateDB, sizeof SQLCreateDB ;Создаем базу данных .if ax==SQL_SUCCESS || ax==SQL_SUCCESS_WITH_INFO invoke SQLExecDirect, hStmt, addr SQLSelectDB, sizeof SQLSelectDB ;Выбираем созданную БД .if ax==SQL_SUCCESS || ax==SQL_SUCCESS_WITH_INFO invoke SQLExecDirect, hStmt, addr SQLCreateTable, sizeof SQLCreateTable ;Создаем таблицу в БД ;Название таблицы - test_table, поля id_element - целое, 11 значащих цифр; text - текстовое поле размером 60 байт ;первичный глюч - id_element .if ax==SQL_SUCCESS || ax==SQL_SUCCESS_WITH_INFO invoke SQLExecDirect, hStmt, addr SQLInsert, sizeof SQLInsert .if ax==SQL_SUCCESS || ax==SQL_SUCCESS_WITH_INFO .else invoke MessageBox,addr MessageText4,0,0,0 .endif .else invoke MessageBox,addr MessageText3,0,0,0 .endif .else invoke MessageBox,addr MessageText2,0,0,0 .endif .else invoke MessageBox,addr MessageText1,0,0,0 .endif .else .ENDIF создание разного операций осмысленных Код (Text): ;=========================================== .data MessageText1 db "Unable to create DATABASE",0 SQLCreateDB db "CREATE DATABASE %s",0 SQLBuffer db 4096 dup(0) TextBuffer db 4096 dup(0) ;=========================================== .code invoke SendMessageA, HwndTextBox, WM_GETTEXTLENGTH, 0, 0 invoke SendMessageA, HwndTextBox, WM_GETTEXT, addr TextBuffer, eax invoke wsprintfA, addr SQLBuffer, addr SQLCreateDB, addr TextBuffer add esp,12 invoke SQLAllocHandle, SQL_HANDLE_STMT, hConn, addr hStmt .IF ax==SQL_SUCCESS || ax==SQL_SUCCESS_WITH_INFO invoke lstrlenA, addr SQLBuffer invoke SQLExecDirect, hStmt, addr SQLBuffer, eax ;Создаем базу данных .if ax==SQL_SUCCESS || ax==SQL_SUCCESS_WITH_INFO else invoke MessageBox,addr MessageText1,0,0,0 .endif .else .ENDIF