Sql i Delphi

13 отговора 528 прегледа
#1

Sql i Delphi

Prawq sledniq INSERT:
query.SQL.Text:= 'INSERT INTO MRules (SRules) VALUES("ffffff")';
query.open;

Exception: "Can not convert data type from string to uknown"

Posle probwam towa:
query.SQL.Clear;
query.SQL.Add('INSERT INTO MRules');
query.SQL.Add('(SRules)');
query.SQL.Add('VALUES (:Text)');
query.Params[0].AsMemo:='skhfdasdhg';
// query.Params[0].AsString:='skhfdasdhg'; taka syto nis]o nestawa
// query.Params[0].AsBlob:='skhfdasdhg';


query.open;

, i poluchawam access violation... :(


Problemyt qwno e s towa memo pole, ama ne znam kakyw e.
Pomagaite, pls...

Отговор
в отговор на no #2

Ne znam dali ste ti e ot pomost ama ...

1. На времето като ползвах подобни контроли при Insert използвах не open a execute.
2. Iмам опит със C и MySQL ето пример който ще сработи:
"insert into MRules (SRules) values ('ffffff')"
При MySQL се ползват единични кавички а двойните са за ограждане на стринга.
Та ако искаш опитай следното (незнам дали е приложимо при Длфи):
query.SQL.Text:="INSERT INTO MRules (SRules) VALUES('ffffff')";
query.execute;
По принцип като ползвам MySQL използвам директен достъп (през dl) и нямам подобни проблеми (не че нямам други де:).

Отговор
в отговор на bira_more #3

probvay da polzvach drugi objects za mysql

neznam dali rabotich s mysql no ako e takuv sluchaya ne polzvay standartnite delphi methodi/obekti chot sa adski tromavi ... polzvay directno mysql prez dll

Отговор
в отговор на oop #4

Вероятно репликата ти не е за мен щото

1. Ползвам CBuilder
2. Ползвам точно dll за директен достъп - е и малко съм си дописъл де за да ми е по удобно.

Отговор
в отговор на no #5

Re: Sql i Delphi

10x za responsa
Ne polzwam MySql, a EasyTable, ama to sugurno i s MySql problemyt ste e identichen.

Towa s tezi ""kawichki ne e prologimo wDelphi... A i probwah s kakwito kawichki se setish... :)
Okaza se che prez TTable rabotata stawa, a s query ne...

S table-a prawq slednoto:

table.FieldByName('SubRules').AsString:='text, text, text';

i wsichko e ok. Taka i ne razbrah, zasto systoto ne stawa s query...

Отговор
в отговор на no #6

Re: Sql i Delphi

Не е лошо да вземеш да си изясниш някои понятия:
1. Език за програмиране (Pascal) - Интегрирана среда за разработване (Delphi) - език за заявки (SQL)
2. Компоненти за достъп до бази данни (EasyTable) - База данни (Employee) - Система за Управление на База Данни (MySQL)

Тогава ще разбереш и за кавичките



PS.
3. Български език (това на което пиша) - Неграмотница (tvoeto pisanie)
Може и да съм старомоден, но не съм склонен да помагам на хора, които уж търсят помощ, а не си правят труда да не затрудняват този, от когото чакат помощ.

Редактирано от NDeu на

Отговор
в отговор на no #7

Problemat e s komponentite iavno :((

Това беше една от причините да мина към директен достъп - през dll.
MySQL си има един dll който позволява на клиента да се върже към MySQL.
Компонентите на Борланд са лигави - много удобни ама лигави.
За това ползвам малка част от тях - най-базисните, и много трудно се навивам да пробвам някой 'нов' компонент.
DB компоненти отдавна не ползвам (освен собствени базирани на dll'а).
Повече писане е ама знаеш кога какво става и най-вече защо не става :)) Защото MySQL си има и функция да ти върне като текст какво не му е харесало.

Отговор
в отговор на NDeu #8

За кавичките и хората...

Да бе, прав си...

Верно EasyTable не е сървър... Ама чесно казано не ми пука...
Колкото до твоето леко заяждане, пояснявам какъв беше проблема:

Ползвам EasyTable компонени (от AidAim) за да обработвам .edb файл през Делфи( the IDE). Лошото е, че в една от таблиците има Memo поле, което създава проблеми... Чрез TEasyQuery не мога да му взема стойността като string, или да му "сетна" някаква стойност от string. Единственият начин е да използвам TDBMemo, което не ме идовлетворява...
А с TEasyTable всичко е ОК...

Та, въпросът за 100 000 лв. е:
Колко кавички са нужни за да научи Ники Кънчев какво е СиКуЕл, какво е система и колко са мишките в таблицата...

п.с. Вярно, на кирилица всичко изглежда по-добре...

Само сега, не ми казвай че не разбираш нищо от Делфи и не могеш да кажеш нищо по проблемът...

Ааа, да - нищо не разбирам от бази данни, това ми е 1-то приложение, което пиша...



Отговор
в отговор на no #9

Re: За кавичките и хората...

Айде и аз да се вкл. в дискусията. Не знам какви са EDB файловете ти, но това което намерих за тях никак не ме насочи. До колкото си спомням (от dBase) Мемо полето беше голяма боза, която се държеше в отделен файл (спомените са ми от 10-ина години). Ако все пак си направиш труда да ни кажеш КАКВА по дяволите база данни ползваш може би ще улесни тези които искат да ти отговорят.

П.С. Не се опитвай да работиш с Мемо полета като със стрингови. Това е все едно да се опиташ да набуташ слон в бирена бутилка като преди това не си извадил хипопотама.

E tuk ni6to niama :[линк]
Отговор
в отговор на ro6avia #10

Edin vapros?

А бирата трябва ли да бъде изпита, преди хипопотама?

Отговор
в отговор на no #11

Проблема ти е...

Избрал си компоненти и база данни - със собствен формат! и никаква поддръжка - това, че си намерил отнякъде пакета(без да плащаш) - не значи, че ще можеш да го използваш много дълго - точно заради поддръжката. Да беше си седя на стандартното BDE + Paradox или dBase!!!!
Проблема си е чисто от пакета - няма нищо общо с Delphi -то или с базите данни, ако не си го разбрал да ти го кажа. Преосмисли си нещата и ако трябва ги корегирай овреме.
Айде със здраве - и въпроса ти нямаше нужда да е тук - той е за support-a на AidAim

---
Е т'ва е живот!
Отговор
в отговор на bira_more #12

Re:Един отговор

Ами ако аз съм бил там ще е изпита , а и ще има още мноооооого празни бутилки за да се пробваш със слона ;-)))))

E tuk ni6to niama :[линк]
Отговор
в отговор на no #13

Re: Sql i Delphi

Query.ExecSQL;

e otgovora a ne Open. Open se izpolzva za SELECT :-)

Отговор
в отговор на no #14

Re: Sql i Delphi

Siguren li si che Easy Table poddarja SQL, a i dali waobshte se poddarja ot Delphi. Predi niakolko godini se zanimaewah s Delphi i takawa baza ne se poddarjashe pone s DBЕ. Виж дали не са необходими някакви допълнителни драйвери.
Probwaj s Paradox ili dBase i ako ti se oprawi problema znachi e towa.
Ako izpolzwash niakakaw SQL sarwar wrazkata se osashtestwiawa prez komponenti za otdalechen dostap. Probwaj s niakoia ot tiah.

Отговор