Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
08.12.2012, 22:11
|
|||
---|---|---|---|
|
|||
выборка из поля 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, 23:54
|
|||
---|---|---|---|
выборка из поля text1 |
|||
#18+
Добавьте перед вашим кодом строки Код: sql 1. 2.
и сообщите результат ... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.12.2012, 17:12
|
|||
---|---|---|---|
|
|||
выборка из поля text1 |
|||
#18+
Dag, ничего не происхит.после 3 нажатия выпадает окно alias 'поставки' is not found ... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.12.2012, 17:14
|
|||
---|---|---|---|
|
|||
выборка из поля text1 |
|||
#18+
мне кажется, что не работает копирование в другую таблицу ... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.12.2012, 20:36
|
|||
---|---|---|---|
выборка из поля text1 |
|||
#18+
А так (вместо всего вышеприведенного вами кода)? Код: sql 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.12.2012, 21:35
|
|||
---|---|---|---|
выборка из поля text1 |
|||
#18+
longfastПомогите пожалуйста с кодом. Суть в том, чтоб в форме, в поле text1 пользователь писал код товара(поле типа integer) и в таблице программа искала этот товар и копировал записи в другую таблице (poisktovara). буквы ищет(charater), а цифры(integer) выдает ошибку.вот код кнопки.Помогите пожалуйства.уже месяц мучаюсь Ещё два года будешь мучаться, пока не поймёшь, что "в поле text1" ты забиваешь символы (это текстовое поле). И цифирьки забиваемые туда воспринимаются программой, как строковые символы, а не числа. Отсюда и "operator operand type mismatch" (несоответствие типов операндов). Тут, конечно, непонятно было, чего вы там в этот несчастный text1 пытались вводить, но, если к примеру что-то типа "123456", то это СТРОКА, но ещё не число. Чтобы "123456" стало числом, надо использовать функцию VAL("123456") которая вернёт уже чисто число 123456. P.S. И кончайте с русскоязычными именами таблиц/переменных, к добру не приводит. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
09.12.2012, 23:31
|
|||
---|---|---|---|
|
|||
выборка из поля 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) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.12.2012, 02:36
|
|||
---|---|---|---|
выборка из поля text1 |
|||
#18+
Какая у вас версия ФоксПро? В каком месте "код не работает"? В чем глубинный смысл использования DELETE FROM с последующим INSERT? В чем смысл LIKE? Опишите структуру таблиц (с типами полей), а то, действительно, похоже у вас kodtovara - символьное... но тогда зачем рассуждения об integer? Вообще, какую логику вы пытаетесь заложить в выборку (в WHERE)? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.12.2012, 11:46
|
|||
---|---|---|---|
выборка из поля 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, 12:21
|
|||
---|---|---|---|
|
|||
выборка из поля 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:25
|
|||
---|---|---|---|
выборка из поля 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:30
|
|||
---|---|---|---|
выборка из поля 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:50
|
|||
---|---|---|---|
выборка из поля text1 |
|||
#18+
longfast, Ну да, попробуйте без VAL() в первой строке. Ну и сравнение по имени сделайте именно так, как вы планируете: если строго 3 символа - то ==, если 3 символа из таблицы с 0-3 символами поля - то = или LIKE. И DELETE ALL + INSERT <=> SELECT INTO TABLE, и удаленных записей не остается... Ну и неплохо бы было завести отдельное поле КодТовара, поскольку в вашей структуре kodtovara - это ключ, поле связи, и пользователь, по идее, вообще не должен не должен оперировать его значениями. Кстати, по структуре таблиц: в ТОВАРЫ для того, чтобы оперировать длинными строками, лучше использовать поля типа Memo, а не Character с максимальным размером; в ПОСТАВКИ для числовых данных (партии-суммы-количества) лучше использовать Numeric или Currency... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.12.2012, 12:53
|
|||
---|---|---|---|
|
|||
выборка из поля text1 |
|||
#18+
IgorNG А вместо lnKodtovara=val(thisform.text1.Value) lnKodtovara=thisform.text1.Value не пробовал? попробовал, выдает ошибку в строке select и ошибка ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.12.2012, 13:02
|
|||
---|---|---|---|
|
|||
выборка из поля 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:06
|
|||
---|---|---|---|
|
|||
выборка из поля 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:08
|
|||
---|---|---|---|
|
|||
выборка из поля text1 |
|||
#18+
IgorNG,у меня это прописано в свойствах поля text 1, в разделе data-value.Или ещё стоит прописать и init? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.12.2012, 13:12
|
|||
---|---|---|---|
выборка из поля text1 |
|||
#18+
longfast, WHERE (cStroka) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.12.2012, 13:36
|
|||
---|---|---|---|
|
|||
выборка из поля text1 |
|||
#18+
IgorNGlongfast, WHERE (cStroka) А почему cstroka? у нас же clstroka ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.12.2012, 13:37
|
|||
---|---|---|---|
|
|||
выборка из поля text1 |
|||
#18+
ой lcstroks ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.12.2012, 13:37
|
|||
---|---|---|---|
|
|||
выборка из поля text1 |
|||
#18+
lcstroka ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.12.2012, 13:39
|
|||
---|---|---|---|
выборка из поля text1 |
|||
#18+
longfastIgorNG,у меня это прописано в свойствах поля text 1, в разделе data-value.Или ещё стоит прописать и init? Нет, конечно. Ответ был не тебе. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.12.2012, 13:42
|
|||
---|---|---|---|
выборка из поля text1 |
|||
#18+
longfastlcstroka Ну ты уж сам как-нибудь определись, как должно быть правильно. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
10.12.2012, 13:47
|
|||
---|---|---|---|
|
|||
выборка из поля text1 |
|||
#18+
хехеех. последняя запись. lcSrtoka. IgorNG А вместо lnKodtovara=val(thisform.text1.Value) lnKodtovara=thisform.text1.Value не пробовал? попробовал, выдает ошибку в строке select и ошибка К сообщению приложен файл. Размер - 31Kb вы не знаете почему выдается это окно? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=41&mobile=1&tid=1583280]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 173ms |
0 / 0 |