Jak przypisać wartość wszystkim wierszom z kolumny z innej tabeli?

Jak przypisać wartość wszystkim wierszom z kolumny z innej tabeli?
S0
  • Rejestracja: dni
  • Ostatnio: dni
0

Witajcie!

Mam - wydaje się proste pytanie. Ale coś mnie zaćmiło.
Mam 2 tabele: tab1 i tab2.
W tych tabelach mam m.in. pola tresc (w obu tabelach) jako varchar (500).
W jaki sposób przepisać dane z jednej tabeli do drugiej.

Kopiuj
Tabela2Tresc.AsString:= Tabela1Tresc.AsString;

nie działa (ograniczenie stringa do 255).
Samo przypisanie niby działa, ale polskie litery zostaja zamienione na krzaczki.
Bazy oparte są nas MySQL

woolfik
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1611
0

Bo zdefiniowałeś sobie Tabela2Tresc, i Tabela1Tresc jako fielda po stronie DFM. W takiej sytuacji length jest pobierany na moment tworzenia i jak potem rozszerzyłeś kolumnę na bazie to w DFM została stara wartość. Wywal te fieldy i zrób qTabela2.FieldByName('Tresc').AsString := qTabela1.FieldByName('Tresc').AsString i będziesz miał to dynamiczne bez względu na zmiany rozmaru po stronie bazy

flowCRANE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 12270
0
Sc0li0sis napisał(a):

nie działa (ograniczenie stringa do 255).

Nie używasz dyrektywy {$H+}?

Samo przypisanie niby działa, ale polskie litery zostaja zamienione na krzaczki.

Sprawdź kodowanie. Pamiętaj, że typ String we Free Pascalu domyślnie jest kodowany w UTF-8.

S0
  • Rejestracja: dni
  • Ostatnio: dni
1

Dzięki za odpowiedzi.

W bazie też mam kodowanie UTF-8, więc skąd "krzaczki"?

GS
  • Rejestracja: dni
  • Ostatnio: dni
0

W bazie też mam kodowanie UTF-8, więc skąd "krzaczki"?

Dawno nie bawiłem się MySql'em w Delphi. Być może w parametrach połączenia z bazą masz nieprawidłowo ustawione kodowanie

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.