|
выборка из поля 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 |
|
|
start [/forum/search_topic.php?author=mwsdatabaseru&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
56ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
others: | 687ms |
total: | 880ms |
0 / 0 |