|
выборка из поля text1
|
|||
---|---|---|---|
#18+
Здравствуйте. Помогите пожалуйста с кодом. Суть в том, чтоб в форме, в поле text1 пользователь писал код товара(поле типа integer) и в таблице программа искала этот товар и копировал записи в другую таблице (poisktovara). буквы ищет(charater), а цифры(integer) выдает ошибку.вот код кнопки.Помогите пожалуйства.уже месяц мучаюсь DELETE FROM poisktovara insert into poisktovara (kodtovara,naimtovara,texxarakter,opisanie,partiya,kolvo,stoimzak,stoimpokup,nalichie) Select товары.kodtovara,товары.naimtovara,товары.texxarakter,товары.opisanie,поставки.partiya,поставки.kolvo,поставки.stoimzak,поставки.stoimpokup,поста вки.nalichie FROM товары,поставки WHERE товары.kodtovara = поставки.kodtovara and SUBSTR(ALLTRIM(товары.naimtovara),2,3) like SUBSTR(ALLTRIM (thisform.text2.value),2,3) AND [поставки.kodtovara]=(thisform.text1.Value) DO FORM поисктовара обычно выдает ошибку operator operand type mismatch. типы поля всех 3 таблиц идиентичны ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2012, 22:11 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
Добавьте перед вашим кодом строки Код: sql 1. 2.
и сообщите результат ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2012, 23:54 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
Dag, ничего не происхит.после 3 нажатия выпадает окно alias 'поставки' is not found ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2012, 17:12 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
мне кажется, что не работает копирование в другую таблицу ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2012, 17:14 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
А так (вместо всего вышеприведенного вами кода)? Код: sql 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2012, 20:36 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
longfastПомогите пожалуйста с кодом. Суть в том, чтоб в форме, в поле text1 пользователь писал код товара(поле типа integer) и в таблице программа искала этот товар и копировал записи в другую таблице (poisktovara). буквы ищет(charater), а цифры(integer) выдает ошибку.вот код кнопки.Помогите пожалуйства.уже месяц мучаюсь Ещё два года будешь мучаться, пока не поймёшь, что "в поле text1" ты забиваешь символы (это текстовое поле). И цифирьки забиваемые туда воспринимаются программой, как строковые символы, а не числа. Отсюда и "operator operand type mismatch" (несоответствие типов операндов). Тут, конечно, непонятно было, чего вы там в этот несчастный text1 пытались вводить, но, если к примеру что-то типа "123456", то это СТРОКА, но ещё не число. Чтобы "123456" стало числом, надо использовать функцию VAL("123456") которая вернёт уже чисто число 123456. P.S. И кончайте с русскоязычными именами таблиц/переменных, к добру не приводит. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2012, 21:35 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
AndreTM,Код к сожалению не работает. я доработал свой код и всё заработало.но к сожалению не так как надо. Корректно ищет лишь только по названию товара. а по коду товара находит аж 40 записей(хотя у меня их всего 16).Это из за or. если ставлю and то ищет норм но только когда выбирает одновременно из 2 полей (text1 и text2). Вот как теперь сделать так чтоб выбирало только из одного поля(т.е из поля text1 или text2 или одновременно из обоих)? SET DELETED ON DELETE FROM poisktovara insert into poisktovara(pole1,pole2,texxarakter,opisanie,partiya,stoimzak,stoimpokup,kolvo,nalichie) Select товары.kodtovara,товары.naimtovara,товары.texxarakter,товары.opisanie,поставки.partiya,поставки.kolvo,поставки.stoimzak,поставки.stoimpokup,поставки.nalichie FROM товары,поставки WHERE товары.kodtovara = поставки.kodtovara AND SUBSTR(ALLTRIM(товары.naimtovara),2,3) like SUBSTR(ALLTRIM(thisform.text2.value),2,3) or поставки.kodtovara=(thisform.text1.Value) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2012, 23:31 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
Какая у вас версия ФоксПро? В каком месте "код не работает"? В чем глубинный смысл использования DELETE FROM с последующим INSERT? В чем смысл LIKE? Опишите структуру таблиц (с типами полей), а то, действительно, похоже у вас kodtovara - символьное... но тогда зачем рассуждения об integer? Вообще, какую логику вы пытаетесь заложить в выборку (в WHERE)? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 02:36 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
longfast Вот как теперь сделать так чтоб выбирало только из одного поля(т.е из поля text1 или text2 или одновременно из обоих)?Чем это определяется? Если наличием/отсутствием данных в одном из полей,то проще подготовить заранее строку "условие" - и вперед! Типа: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
* остальные условия допилите сами, ну и в SELECT: Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 11:46 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
AndreTM, Версия foxpro 9.0 код не работает в самой первой строчке lnKodtovara=val(thisform.text1.Value) выдает ошибку function argument value,type,or count is invalid delete from я использую для очистки таблицы. Весь смысл моего кода заключается в том, что я использую оператор insert select, т.е из запроса (select) я выбираю данные, которые совпадают(=) с значением поля text1 для цифр, и like (типа = для букв) для charater. и у меня получается данные, которые я нахожу с помощью select копируются в таблицу poisktovara и выводятся в форме.при следующем нажатии на кнопку поиск таблица poisktovara очищается (delete from) и туда записывается новые значения select. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 12:21 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
longfastAndreTM, Версия foxpro 9.0 код не работает в самой первой строчке lnKodtovara=val(thisform.text1.Value) выдает ошибку function argument value,type,or count is invalid delete from я использую для очистки таблицы. Весь смысл моего кода заключается в том, что я использую оператор insert select, т.е из запроса (select) я выбираю данные, которые совпадают(=) с значением поля text1 для цифр, и like (типа = для букв) для charater. и у меня получается данные, которые я нахожу с помощью select копируются в таблицу poisktovara и выводятся в форме.при следующем нажатии на кнопку поиск таблица poisktovara очищается (delete from) и туда записывается новые значения select. А вместо lnKodtovara=val(thisform.text1.Value) lnKodtovara=thisform.text1.Value не пробовал? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 12:25 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
rewarelongfastПомогите пожалуйста с кодом. Суть в том, чтоб в форме, в поле text1 пользователь писал код товара(поле типа integer) и в таблице программа искала этот товар и копировал записи в другую таблице (poisktovara). буквы ищет(charater), а цифры(integer) выдает ошибку.вот код кнопки.Помогите пожалуйства.уже месяц мучаюсь И цифирьки забиваемые туда воспринимаются программой, как строковые символы, а не числа. Отсюда и "operator operand type mismatch" (несоответствие типов операндов). Тут, конечно, непонятно было, чего вы там в этот несчастный text1 пытались вводить, но, если к примеру что-то типа "123456", то это СТРОКА, но ещё не число. Чтобы "123456" стало числом, надо использовать функцию VAL("123456") которая вернёт уже чисто число 123456. А вот не факт. Если в Init поставить THIS.Value = 0, то при вводе будет ну никак не текст. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 12:30 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
longfast, Ну да, попробуйте без VAL() в первой строке. Ну и сравнение по имени сделайте именно так, как вы планируете: если строго 3 символа - то ==, если 3 символа из таблицы с 0-3 символами поля - то = или LIKE. И DELETE ALL + INSERT <=> SELECT INTO TABLE, и удаленных записей не остается... Ну и неплохо бы было завести отдельное поле КодТовара, поскольку в вашей структуре kodtovara - это ключ, поле связи, и пользователь, по идее, вообще не должен не должен оперировать его значениями. Кстати, по структуре таблиц: в ТОВАРЫ для того, чтобы оперировать длинными строками, лучше использовать поля типа Memo, а не Character с максимальным размером; в ПОСТАВКИ для числовых данных (партии-суммы-количества) лучше использовать Numeric или Currency... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 12:50 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
IgorNG А вместо lnKodtovara=val(thisform.text1.Value) lnKodtovara=thisform.text1.Value не пробовал? попробовал, выдает ошибку в строке select и ошибка ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 12:53 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
Jonny540longfast Вот как теперь сделать так чтоб выбирало только из одного поля(т.е из поля text1 или text2 или одновременно из обоих)?Чем это определяется? Если наличием/отсутствием данных в одном из полей,то проще подготовить заранее строку "условие" - и вперед! Типа: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
* остальные условия допилите сами, ну и в SELECT: Код: plsql 1.
До конца не понял задачи, но сделал так SET DELETED ON DELETE FROM poisktovara lcStroka="" lcV1=Thisform.text1.Value lcV2=allt(Thisform.text2.Value) do case case !Empty(lcV1) and Empty(lcV2) lcStroka= "поставки.kodtovara=lcV1" case Empty(lcV1) and !Empty(lcV2) lcV1=Thisform.text1.Value case !Empty(lcV1) and !Empty(lcV2) lcV2=allt(Thisform.text2.Value) otherwise messagebox("Идите в баню!") endcase insert into poisktovara(pole1,pole2,texxarakter,opisanie,partiya,stoimzak,stoimpokup,kolvo,nalichie) Select товары.kodtovara,товары.naimtovara,товары.texxarakter,товары.opisanie,поставки.partiya,поставки.kolvo,поставки.stoimzak,поставки.stoimpokup,поставки.nalichie FROM товары,поставки WHERE &cStroka и выдает sintax error ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 13:02 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
AndreTM longfast, Ну да, попробуйте без VAL() в первой строке. Ну и сравнение по имени сделайте именно так, как вы планируете: если строго 3 символа - то ==, если 3 символа из таблицы с 0-3 символами поля - то = или LIKE. И DELETE ALL + INSERT <=> SELECT INTO TABLE, и удаленных записей не остается... Ну и неплохо бы было завести отдельное поле КодТовара, поскольку в вашей структуре kodtovara - это ключ, поле связи, и пользователь, по идее, вообще не должен не должен оперировать его значениями. Кстати, по структуре таблиц: в ТОВАРЫ для того, чтобы оперировать длинными строками, лучше использовать поля типа Memo, а не Character с максимальным размером; в ПОСТАВКИ для числовых данных (партии-суммы-количества) лучше использовать Numeric или Currency... kodtovara из таблицы товары у меня является связью с поставками в database designer.Насчет типов полей поменяю. а насчет AndreTMНу да, попробуйте без VAL() в первой строке. Ну и сравнение по имени сделайте именно так, как вы планируете: если строго 3 символа - то ==, если 3 символа из таблицы с 0-3 символами поля - то = или LIKE. И DELETE ALL + INSERT <=> SELECT INTO TABLE, и удаленных записей не остается... не особо понятно что надо сделать ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 13:06 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
IgorNG,у меня это прописано в свойствах поля text 1, в разделе data-value.Или ещё стоит прописать и init? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 13:08 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
longfast, WHERE (cStroka) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 13:12 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
IgorNGlongfast, WHERE (cStroka) А почему cstroka? у нас же clstroka ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 13:36 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
longfastIgorNG,у меня это прописано в свойствах поля text 1, в разделе data-value.Или ещё стоит прописать и init? Нет, конечно. Ответ был не тебе. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 13:39 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
longfastlcstroka Ну ты уж сам как-нибудь определись, как должно быть правильно. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 13:42 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
хехеех. последняя запись. lcSrtoka. IgorNG А вместо lnKodtovara=val(thisform.text1.Value) lnKodtovara=thisform.text1.Value не пробовал? попробовал, выдает ошибку в строке select и ошибка К сообщению приложен файл. Размер - 31Kb вы не знаете почему выдается это окно? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 13:47 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
longfastхехеех. последняя запись. lcSrtoka. IgorNGА вместо lnKodtovara=val(thisform.text1.Value) lnKodtovara=thisform.text1.Value не пробовал? попробовал, выдает ошибку в строке select и ошибка К сообщению приложен файл. Размер - 31Kb вы не знаете почему выдается это окно? А селект-то какой? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 13:50 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
IgorNG, Select t.kodtovara,t.naimtovara,t.texxarakter,t.opisanie,p.partiya,p.kolvo,p.stoimzak,p.stoimpokup,p.nalichie ; сейчас ругается на naimtovara is not found.странно ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 14:12 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
longfast, точка с запятой - это продолжение на следующей строке. А где у тебя продолжение? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 14:14 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
IgorNG, lnKodtovara=thisform.text1.Value lcNailtovara=SUBSTR(ALLTRIM(thisform.text2.value),2,3) Select t.kodtovara,t.naimtovara,t.texxarakter,t.opisanie,p.partiya,p.kolvo,p.stoimzak,p.stoimpokup,p.nalichie ; FROM товары t INNER JOIN поставки p ON t.kodtovara = p.kodtovara ; WHERE p.kodtovara=lnKodtovara AND SUBSTR(ALLTRIM(товары.naimtovara),2,3) == lcNailtovara ; INTO TABLE poisktovara DO FORM поисктовара ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 14:31 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
поменял на lnKodtovara=thisform.text1.Value lcNaimtovara=SUBSTR(ALLTRIM(thisform.text2.value),2,3) Select t.kodtovara,t.naimtovara,t.texxarakter,t.opisanie,p.partiya,p.kolvo,p.stoimzak,p.stoimpokup,p.nalichie ; FROM товары t INNER JOIN поставки p ON t.kodtovara = p.kodtovara ; WHERE p.kodtovara=lnKodtovara AND SUBSTR(ALLTRIM(товары.naimtovara),2,3) == lcNaimtovara ; INTO TABLE poisktovara DO FORM поисктовара и стало выпадать как раз это окно ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 14:44 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
longfast, У тебя была открыта база данных и при SELECT ... INTO TABLE ... эта таблица попала в контейнер базы данных. Поэтому такое и сообщение. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 14:48 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
код всё равно не работает.когда выбираю text1(числовой поиск) выпадает окно не найден kodtovara а когда text2 (символы) табличка с ошибкой ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 15:26 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
longfast, По первой ошибке покажи скрин, а по второй - из контейнера БД удали таблицу poisktovara. А в селесте замени INTO TABLE на INTO CURSOR ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 15:36 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
IgorNG, по первой ошибке ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 15:58 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
longfast, Проверь наличие поля naimtovara в таблице товары ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 16:04 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
IgorNG, да вот самое странное что оно там присутствует ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 16:11 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
удалил таблицу poisktovara заменил table на cursor и блин опять ошибка. Она у меня уже раз была, пришлось программу закрывать в диспетчере задач ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 16:15 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
longfastудалил таблицу poisktovara заменил table на cursor и блин опять ошибка. Она у меня уже раз была, пришлось программу закрывать в диспетчере задач А что у тебя в DE.Curs1 ? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 16:19 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
если я удалю таблицу poisktovara тогда получается форма поиск товара будет сама по себе? У меня была создана форма поисктовара на базе таблицы poisktovara ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 16:20 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
IgorNGlongfastудалил таблицу poisktovara заменил table на cursor и блин опять ошибка. Она у меня уже раз была, пришлось программу закрывать в диспетчере задач А что у тебя в DE.Curs1 ? постесняюсь спросить, а это что? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 16:22 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
longfast, Так из DE её удали ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 16:22 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
IgorNG, удалил из DE. теперь ругается на отсутствие поля naimtovara :-((( ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 16:29 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
longfast, Ну что ж из тебя всё тянуто-то нужно? Где ругается? В запросе? В форме? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 16:31 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
IgorNG, ругается в форме. когда я ввожу в text1 цифру, либо в text2 название товара и нажимаю кнопку поиск, выпадает окно ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 16:35 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
longfast, А зачем у тебя эти два текстовых поля привязаны к таблице? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 16:38 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
longfast, В первой строке кнопки поиска напиши: SELECT Товары BROWSE ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 16:40 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
IgorNGlongfast, А зачем у тебя эти два текстовых поля привязаны к таблице? если вы имеете ввиду это t.kodtovara = p.kodtovara то это связь между таблицами. IgorNGВ первой строке кнопки поиска напиши: SELECT Товары BROWSE добавил в начало кода и ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 17:09 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
longfast, А сообщение-то какое? Что таблицы нет? Или открывает окно проводника, чтобы указать где расположена таблица? Таблица была открыта до этого? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 17:25 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
IgorNGlongfast, А сообщение-то какое? Что таблицы нет? Или открывает окно проводника, чтобы указать где расположена таблица? Таблица была открыта до этого? собщение ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 17:39 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
longfast, Ну так укажи путь к ней или предварительно открой. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 17:40 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
longfast, таблица есть товара и поставки. не одна таблица до этого не была открыта. если нажимаю ignore то выводит окошко с выбором моих таблиц. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 17:41 |
|
выборка из поля text1
|
|||
---|---|---|---|
#18+
IgorNGlongfast, Ну так укажи путь к ней или предварительно открой. указать путь к таблице товары? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2012, 17:49 |
|
|
start [/forum/topic.php?all=1&fid=41&tid=1583280]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
56ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
72ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 182ms |
0 / 0 |