Форум: "Начинающим";
Текущий архив: 2006.03.05;
Скачать: [xml.tar.bz2];
ВнизADOQuery, SQL и MSAccess Найти похожие ветки
← →
parovoZZ © (2006-02-17 23:15) [0]Почему вот это работает
begin
Doc := WebBrowser.Document as IHTMLDocument2;
Element := Doc.All.Item ("text", 0) as IHTMLElement;
Mes := Element.outerText;
SQL := "INSERT INTO Messages (Message, Author, Equipment, Date_Time) VALUES (prmMessage, prmUser, prmID, Now())";
ADOQuery.Close;
ADOQuery.SQL.Clear;
ADOQuery.SQL.Add(SQL);
ADOQuery.Parameters.ParamByName("prmMessage").Value := Mes;
ADOQuery.Parameters.ParamByName("prmUser").Value := User_ID;
ADOQuery.Parameters.ParamByName("prmID").Value := Equipment_ID;
ADOQuery.ExecSQL;
StatusBar.Panels[0].Text := "...";
TrVChange (TObject (TrV), TrV.Selected);
end;
и это тожеSysID := PTableData (Node.Parent.Data)^.ID;
SQL := "SELECT Equipment, Equipment_ID FROM Equipments WHERE (Object=:prmID) and (System=:prmSys)";
AdoQuery.Close;
AdoQuery.SQL.Clear;
AdoQuery.SQL.Add(SQL);
AdoQuery.Parameters.ParamByName("prmID").Value := TableData.ID;
ADOQuery.Parameters.ParamByName("prmSys").Value := SysID;
AdoQuery.Open;
А вот это не работаетbegin
Element := Doc.All.Item ("element", 0) as IHTMLElement;
Mes := Element.getAttribute("value", 0);
SQL := "INSERT INTO Equipments (System, Object, Equipment, Notes) VALUES (prmSys, prmObj, prmEquip, prmNote)";
ADOQuery.Close;
ADOQuery.SQL.Clear;
ADOQuery.SQL.Add(SQL);
ADOQuery.Parameters.ParamByName("prmSys").Value := PTableData (ParentNode.Parent.Data)^.ID;
ADOQuery.Parameters.ParamByName("prmObj").Value := PTableData (ParentNode.Data)^.ID;
ADOQuery.Parameters.ParamByName("prmEquip").Value := Mes;
Element := Doc.All.Item ("text", 0) as IHTMLElement;
Mes := Element.outerText;
ADOQuery.Parameters.ParamByName("prmNote").Value := Mes;
ADOQuery.ExecSQL;
end;
пишет "ADOQuery: Parameter "prmSys" not found".
Если сделать такSQL := "INSERT INTO Equipments VALUES (?, prmEquip, prmSys, prmObj, prmNote)"
то работает, но я не знаю, что ставить вместо знака вопроса - там автоинкрементное поле.
← →
Anatoly Podgoretsky © (2006-02-18 00:05) [1]Ничего, сервер сам вставит, только надо указать явный список полей, как в первом примере.
← →
ЮЮ © (2006-02-18 07:33) [2]И где же в запросе
INSERT INTO Equipments (System, Object, Equipment, Notes) VALUES (prmSys, prmObj, prmEquip, prmNote)
параметры?
INSERT INTO Equipments (System, Object, Equipment, Notes) VALUES (:prmSys, :prmObj, :prmEquip, :prmNote)
Найди 4 отличия
← →
parovoZZ © (2006-02-18 17:09) [3]
> только надо указать явный список полей, как в первом примере.
C таблицей в первом примере работает, второй пример с другой таблицей тоже работает, а с той же таблицей, но INSERT - не работает.
> INSERT INTO Equipments (System, Object, Equipment, Notes)
> VALUES (:prmSys, :prmObj, :prmEquip, :prmNote)
Найди 4 отличия
Результат: "ошибка синтаксиса в инструкции INSERT INTO".
← →
parovoZZ © (2006-02-18 22:57) [4]Ыца дрыца гоп цаца
Было такSQL := "INSERT INTO Equipments (Equipment_name, System, Object, Notes) VALUES (prmEquip, prmSys, prmObj, prmNote)";
Я сделал такSQL := "INSERT INTO Equipments (Equipment_name, System, Object_, Notes) VALUES (prmEquip, prmSys, prmObj, prmNote)";
И всё заработало. Что же такое Object в SQL ?
Почему вот это работает
SQL := "SELECT Object, Object_name FROM Equipments, Objects WHERE (System=:prmID) and (Object=Object_ID) GROUP BY Object, Object_name";
← →
parovoZZ © (2006-02-19 00:03) [5]И вдогонку
Можно как-то получить значение автоинкриментного поля (через триггер или ещё как) после запроса INSERT?
← →
parovoZZ © (2006-02-19 18:01) [6]Неужели никто не знает?
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.03.05;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.012 c