1. Схема отработала но ничего в таблицу не вывела. Более того, при нажатии на кнопку Push - выбило ошибку Runtime error 216 at 0000AB6D и прога успешно закрылась. Если отсоединить ssid и связать напрямую то схема будет работать при условии что таблица пуста. Т.е. выполнится запрос и в списке строк мы получим наименования всех столбов. При наличии хоть 1 заполненной строки в таблице - Runtime error 216 at 0000AB6D и закрытие проги. Вот схема:
Add(MainForm,11824324,231,91)
{
Width=754
Height=447
link(onCreate,7011127:doOpen,[])
}
Add(OLEdb,7011127,336,105)
{
Point(onError)
link(onConnect,15010175:doCreate,[(378,111)(378,146)(324,146)(324,160)])
link(Driver,2009463:Text,[])
link(onError,6783685:doWork2,[])
}
Add(Button,2401723,259,259)
{
Left=395
Top=70
Width=165
}
Add(Edit,2009463,336,56)
{
Left=5
Top=15
Width=790
Text="DRIVER={SQL Server};SERVER=127.0.0.1;UID=sa;PWD=123;DATABASE=test2;"
}
Add(Message,6753516,399,112)
{
}
Add(OLEdb_Query,13534015,315,259)
{
link(onQuery,16321824:doStr,[])
link(onColumns,5673081:doEnum,[(355,272)(355,307)])
link(dbSession,15010175:dbSession,[(321,223)(342,223)])
link(Text,10579844:Text,[(328,253)(402,253)])
}
Add(OLEdb_Session,15010175,336,154)
{
Point(onError)
link(onCreate,13534015:doQuery,[(380,160)(380,212)(303,212)(303,265)])
link(dbHandle,7011127:dbHandle,[])
link(onError,6783685:doWork3,[(389,167)])
}
Add(HubEx,6783685,385,112)
{
link(onEvent,6753516:doMessage,[])
}
Add(StringTable,6078793,427,266)
{
Left=10
Top=130
Width=585
Height=225
Point(doAddColumn)
}
Add(MT_Enum,5673081,364,301)
{
link(onItem,6078793:doAddColumn,[])
}
Add(MT_String,16321824,364,259)
{
link(onResult,6078793:doAdd,[(412,265)(412,272)])
}
Add(Edit,10579844,396,214)
{
Left=5
Top=40
Width=790
Text="SELECT * FROM mytable"
}
Add(GlobalVar,16541232,399,154)
{
Name="ssid"
}
Add(GlobalVar,29603,315,224)
{
Name="ssid"
}
2. Такой вид запроса я пробовал. Но не срабатывало. Сработало в виде INSERT INTO tttt values('23','24')
Причем именно с символом ' а не ".
3. При вводе в таблицу новых значений из создаваемой проги, опять же имеем ошибку Runtime error но данные в таблицу вводятся.
Вот примерная схема ввода. Примерная потому как порядок связей в принципе можно и поменять:
Add(Button,13272033,49,525)
{
Left=105
Top=130
Caption="OK"
Data=Integer(1)
link(onClick,6989287:doEvent1,[])
}
Add(FormatStr,12878242,175,525)
{
DataCount=3
Mask="INSERT INTO mytable values('%1','%2','%3')"
Point(FString)
link(onFString,13534015:doQuery,[])
}
Add(Hub,6989287,119,525)
{
OutCount=5
link(onEvent2,12878242:doString,[(154,538)(154,531)])
link(onEvent5,7011127:doClose,[(336,559)(336,419)])
}
Add(OLEdb_Query,13534015,392,525)
{
link(dbSession,15010175:dbSession,[(398,506)(545,506)])
link(Text,12878242:FString,[(405,513)(293,513)(293,569)(181,569)])
}
Add(OLEdb,7011127,539,406)
{
Driver="DRIVER={SQL Server};SERVER=127.0.0.1;UID=sa;PWD=123;DATABASE=test2;"
Point(onError)
link(onConnect,15010175:doCreate,[(583,412)(583,436)(527,436)(527,461)])
link(onError,6753516:doMessage,[])
}
Add(OLEdb_Session,15010175,539,455)
{
Point(onError)
link(dbHandle,7011127:dbHandle,[])
}
Add(Message,6753516,609,413)
{
}
P.S. Касательно системы. Windows 7, MS SQL 2008, HiAsm билд 184. Нужна именно MS SQL так как в ней можно разграничить доступ по правам акаунтов. В SQLite этого сделать невозможно я так понимаю. Т.е. к таблице такой-то доступ всем а к такой-то доступ только админу.
------------ Дoбавленo в 11.17:
Неужели никто с MS SQL не работает?
------------ Дoбавленo в 11.27:
Кстати если компонент от Nic не ставить то его схема компилится. Если установить его компонент и попробовать скомпилить то получим ошибку.
------------ Дoбавленo в 22.35:
Уже и MS SQL откатил с 2008 на 2005 и никакого результата.